正如问题所说,
我想知道如果有办法改变像这样的函数的范围,
function foo(){
var t = this;
log(t);//{bar:'baz'}
/*** Do something over here to change the scope ***/
var newThis = this;
log(newThis); //{something:'somethingelse'}
}
我很想知道,如果有办法的话。
由于
答案 0 :(得分:1)
function foo(){
log(this);
/*** Do something over here to change the scope ***/
with (newThis) {
log(this);
}
}
我不建议使用它。
不推荐使用with,并且在ECMAScript 5 strict中禁止使用 模式。建议的替代方法是分配其对象 要访问临时变量的属性。
https://developer.mozilla.org/index.php?title=En/Core_JavaScript_1.5_Reference/Statements/With