Ell*_*lle 3 javascript architecture
我有一些有趣的问题,从对象内传入变量setTimeout.起初,我尝试将我正在调用的函数setTimeout放在我的对象上,这样我就不必将任何变量传递给它(我希望它可以自己访问我的对象).这不起作用,显然是因为当我调用它时,函数以某种方式变成了全局setTimeout,并且不再能够访问我的对象的变量.
这是我的下一次尝试,但它也不起作用:
function MyObj() {
this.foo = 10;
this.bar = 20;
this.duration = 1000;
setTimeout(function(){
AnotherFunction(this.foo, this.bar)
}, this.duration);
}
Run Code Online (Sandbox Code Playgroud)
那么,我究竟能从setTimeout一个对象中传递一个变量呢?不,由于各种不相关的原因AnotherFunction无法直接访问MyObj,所以这也是不可能的.
我认为问题在于,当你的函数执行时,this不再受约束MyObj.你可以试试
function MyObj() {
var that = this;
this.foo = 10;
this.foo = 20;
this.duration = 1000;
setTimeout(function(){AnotherFunction(that.foo, that.bar)}, this.duration);
}
Run Code Online (Sandbox Code Playgroud)
或者我还有一个想法,如果不起作用.
| 归档时间: |
|
| 查看次数: |
3114 次 |
| 最近记录: |