全球和js

时间:2016-07-06 07:33:50

标签: javascript scope this global local

我对js中的全局,局部var和this运算符有点困惑。 我必须编写示例及其输出,如果有人可以解释为什么输出是这样的:

var x="10";
function f() {
    var x="4";
    alert(this.x);
    function g() {alert(x);}
    g();
}
f();

输出是:alert(10)然后alert(4),为什么?这个运营商有什么不同?

第二个例子:

enter code here

 var y="5";
var x="10";
x=y;
function f()
{
    y="4";
     alert(this.y);
     function g() {alert(y);}
     g();
}
alert(y);
f();

输出是:alert(4)然后alert(5)anf然后alert(4),为什么又一次?我看不到“这个”算子隐藏的语义是什么?

如果有人可以为js及其极端情况提供全局,本地,此范围的一般规则,请

2 个答案:

答案 0 :(得分:0)

  • 访问变量(例如x)将指向当前范围中的变量x(例如变量x已定义里面你的功能。)

  • this.x的值取决于调用的位置。 this绑定到一个对象,在这种情况下,指向解析为window的全局window.x对象,即全局 x

您可以找到有关this on MDN的更多信息,并注意您的代码在strict mode中的行为会有所不同。

答案 1 :(得分:0)

以下是一些解释:

XmlNodeList