0

对不起,但我不知道如何问这个问题......我将解释它。

我有这个代码:

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”是对象?

4

1 回答 1

0

好的,边提问边搜索,找到了回复。答案是apply方法:

代替:

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

我必须:

myMethod1.apply(obj);
于 2013-03-22T20:33:06.813 回答