我怎样才能设置这个'指向属性方法的对象?

时间:2014-03-11 14:05:09

标签: javascript prototype

我正在为一个对象创建一个相当大的原型,并且我正在尝试将函数收集到属性中,以根据它们的作用来组织它们。这给了我这样的代码:

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所有方法的内容?

1 个答案:

答案 0 :(得分:0)

您可以使用call()bind()apply()来设置this

的值
var test = new MyConstructor('Dave');

test.stringFns.helloMe.call(test);

FIDDLE