更改(或)更改函数的范围,在javascript中的函数内

时间:2011-12-12 08:48:19

标签: javascript

正如问题所说,

我想知道如果有办法改变像这样的函数的范围,

function foo(){
    var t = this;
    log(t);//{bar:'baz'}
    /*** Do something over here to change the scope ***/
    var newThis = this;
    log(newThis); //{something:'somethingelse'}
}

我很想知道,如果有办法的话。

由于

1 个答案:

答案 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