将方法应用于对象的方法可以将“this”关键字作为对象访问

时间:2013-03-22 20:33:07

标签: javascript function methods

很抱歉,但我不知道如何提出这个问题...我要解释一下。

我有这段代码:

function jclass_getVar() {
    return this.myvar;
}
function jclass() {
    this.myvar = "ok";
    this.funcAry = [];
}
jclass.prototype.getVar = jclass_getVar;

var obj = new jclass();

现在一切都很好。如果我访问obj.getVar()它将返回ok,但我可以说我想创建一个函数数组。这是我的代码:

function myMethod1() {
    return this.myvar;
}
function myMethod2() {
    return this.myvar;
}
obj.funcAry.push(myMethod1);
obj.funcAry.push(myMethod2);

当我想调用这些函数时,我会这样做:

for (var i in obj.funcAry) {
    obj.tempmethod = obj.funcAry[i];
    obj.tempmethod();
}
obj.tempmethod = undefined;

我不想创建一个时间变量来调用方法......是否有任何“好”的方法来调用方法并且方法“this”是对象?

1 个答案:

答案 0 :(得分:0)

好的,在搜索的同时搜索我找到了回复。答案是apply方法:

而不是:

obj.tempmethod = myMethod1;
obj.tempmethod();
obj.tempmethod = undefined;

我必须:

myMethod1.apply(obj);