我正在为一个对象创建一个相当大的原型,并且我正在尝试将函数收集到属性中,以根据它们的作用来组织它们。这给了我这样的代码:
function MyConstructor(name){
this.name = name || 'billy!';
}
MyConstructor.prototype.stringFns = {};
MyConstructor.prototype.stringFns.helloWorld = function(){
alert('hello world!');
}
MyConstructor.prototype.stringFns.helloMe = function(){
alert('hello ' + this.name); // <- THIS DOESN'T WORK
}
直到最后一行,这一切都很顺利。好吧,不是最后一行。紧密支撑工作正常。但是,在倒数第二行,this
并未指向我构建的对象。它指向该对象的stringFns
属性。
是否有更好的方法来更改this
对象上stringFns
所有方法的内容?
答案 0 :(得分:0)
您可以使用call()
,bind()
或apply()
来设置this
var test = new MyConstructor('Dave');
test.stringFns.helloMe.call(test);