我对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及其极端情况提供全局,本地,此范围的一般规则,请
答案 0 :(得分:0)
访问变量(例如x
)将指向当前范围中的变量x
(例如变量x
已定义里面你的功能。)
但this.x
的值取决于调用的位置。 this
绑定到一个对象,在这种情况下,指向解析为window
的全局window.x
对象,即全局 x
您可以找到有关this
on MDN的更多信息,并注意您的代码在strict mode中的行为会有所不同。
答案 1 :(得分:0)
以下是一些解释:
XmlNodeList