看代码functionA(){this.init();}functintest(){console.log('test');}A.prototype.init=function(){this.test=test.bind(this)//看这里this.prototype.test=test(this)//还是这里}看上面代码中我标记的地方,我想动态绑定一个外部函数作为A对象的方法,init方法里的this是指functionA呢还是A.prototype?
2 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
动态绑定一个外部函数作为A对象的方法functiontest(){console.log('test');}A.prototype.init=function(){this.test=test;}这样就可以了。init方法里的this是指functionA呢还是A.prototype?vara=newA();a.init();以上面这样方式调用init方法的话,init方法中的this指向aA.prototype.init();以上面这样方式调用init的话,this指向A.prototype
回首忆惘然
TA贡献1847条经验 获得超11个赞
我觉得A.prototype.init=function(){this.test=test.bind(this)//看这里this.prototype.test=test(this)//这里会报错,this.prototype是undefined,//因为函数才有prototype,还有__proto__,对象只有__proto__属性//虽然函数也是一种对象,但这里应该把函数与对象分开}init()里的this是根据谁来调用它来决定的a.init()时this指向aA.prototype.init()时this指向A.prototype
添加回答
举报
0/150
提交
取消