1

有什么方法可以传递this给立即调用的函数表达式,而不解析为var that = this(这在某些情况下不适用)?

尝试了以下但没有运气:

(function(that) {
    console.log(that);
})(this)
4

2 回答 2

5

您也许可以使用callapply用于此目的。例如:

(function() {
    console.log(this); // whatever that was specified in the "call" method
}).call(this);
于 2012-09-17T09:54:09.893 回答
0
(function(that) {
    console.log(that);
})(this);

代码应该可以工作,确保前面没有没有分号的代码。

 (function(that) {
        console.log(that);
 })(this) // if here is no semicolon, the next code will be syntax error.
 (function(that) {
        console.log(that);
 })(this);

您可以尝试下面的代码,即使是省略分号之前的代码也可以。

!function(that) {
    console.log(that);
}(this);
于 2012-09-17T09:57:30.717 回答