prototype中this的疑问

看代码
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?
慕斯王
浏览 647回答 2
2回答

呼唤远方

动态绑定一个外部函数作为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

回首忆惘然

我觉得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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript