比如一个函数, generate() , 使得下面两个表达式意义相同:
generate()
b = new a; b = generate(a);
function generate (fn) { return new fn; }
… 这不科学…
这个问题本来就是闲得蛋疼才想出来的
@leizongmin 昨天看 JS 的原型链看得烦来… 我就觉得明明好东西, 直接接口做明显一点不就好了, 搞这么复杂
function generate = (ctor, args){ var o = clone(ctor.prototype) ctor.apply(o, args) }
clone.toString() == ?
@jiyinyiyong 伪代码哈哈
想做什么
想学会折腾原型链
function generate (ctor){ var o = {}; ctor.call(o); ctor.proto = ctor.prototype;
return o; }
好像 下划线被过滤掉了 --proto–
@saber 代码记得要高亮啊…
xx.__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 是哦
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
… 这不科学…
这个问题本来就是闲得蛋疼才想出来的
@leizongmin 昨天看 JS 的原型链看得烦来… 我就觉得明明好东西, 直接接口做明显一点不就好了, 搞这么复杂
@jiyinyiyong 伪代码哈哈
想做什么
想学会折腾原型链
function generate (ctor){ var o = {}; ctor.call(o); ctor.proto = ctor.prototype;
return o; }
好像 下划线被过滤掉了 --proto–
@saber 代码记得要高亮啊…
@jiyinyiyong 是哦