为什么不能改变“这个”?

时间:2016-05-11 02:37:30

标签: javascript

我知道您可以使用this等更改apply的上下文。

但为什么你不能这样做?

this = 5; // invalid left-hand side in assignment

与此没什么不同:

function Foo() {
     console.log(this.valueOf());
}

Foo.apply(5);

使用applythis = 5有什么区别?不适用于本地重新定义this对于被调用的函数是什么?

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

this是保留字,而不是普通变量。

答案 2 :(得分:1)

这是你所处的背景。你无法改变它,因为要改变你只需要处于不同背景中的上下文......

在同一个存在的情况下,你无法用v#或c#中的这个来改变我。

'this'不是可分配的变量。它是只读的。

也许有一个真正的代码你需要改变这个我可以建议你别的......

你可以这样做:

var myFunction = function(arg1) {
   //Do something here ...
};

如果您需要更改它,只需重新分配变量:`

myFunction = function(arg1) {
    //Do something else here ...
};

答案 3 :(得分:0)

这是一个对象。您可以为此对象的属性指定数值,但不能为其自身指定数值。