怎样用 JS 自身实现一遍 new ?
比如一个函数, generate()
, 使得下面两个表达式意义相同:
b = new a;
b = generate(a);
14 回复
function generate (fn) {
return new fn;
}
这个问题本来就是闲得蛋疼才想出来的
function generate = (ctor, args){
var o = clone(ctor.prototype)
ctor.apply(o, args)
}
@jiyinyiyong 伪代码哈哈
想做什么
function generate (ctor){ var o = {}; ctor.call(o); ctor.proto = ctor.prototype;
return o; }
好像 下划线被过滤掉了 --proto–
generate = (ctor, arg...)->
o = {}
o.__proto__ = ctor.prototype
ctor.apply o, arg
o
class Dog
constructor:(@name)->
eat:->
console.log "#{@name} is eatting"
generate(Dog, "dogg").eat()
@jiyinyiyong 是哦