比如一个函数, generate() , 使得下面两个表达式意义相同:
b = new a;
b = generate(a);
回复 (14)
A
想做什么
I
J
引用 a272121742想做什么
想学会折腾原型链
S
function generate (ctor){ var o = {}; ctor.call(o); ctor.proto = ctor.prototype;
return o; }
S
J
引用 saberfunction generate (ctor){ var o = {}; ctor.call(o); ctor. proto = ctor.prototype; return o; }
@saber 代码记得要高亮啊....
xx.__proto__
I
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()
S
L
function generate (fn) {
return new fn;
}
J
引用 leizongmin
.. 这不科学..
L
引用 leizongmin
这个问题本来就是闲得蛋疼才想出来的
J
引用 leizongmin
@leizongmin 昨天看 JS 的原型链看得烦来... 我就觉得明明好东西, 直接接口做明显一点不就好了, 搞这么复杂
I
function generate = (ctor, args){
var o = clone(ctor.prototype)
ctor.apply(o, args)
}
J
参与回复
登录后即可参与回复。登录