很抱歉,但我不知道如何提出这个问题...我要解释一下。
我有这段代码:
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”是对象?
答案 0 :(得分:0)
好的,在搜索的同时搜索我找到了回复。答案是apply
方法:
而不是:
obj.tempmethod = myMethod1;
obj.tempmethod();
obj.tempmethod = undefined;
我必须:
myMethod1.apply(obj);