var name = "Window Object";
var a = {
name: 'manish',
getName: function() {
return this.name;
}
}
b = (a.getName = a.getName)();
console.log(b, window);
上面是我写在JSFiddle上的代码。为什么我的全局变量在JSFiddle上被覆盖?
这里是链接:https://jsfiddle.net/shettyrahul8june/o49jn5fm/
变量b返回结果,而不是窗口对象。我看到在Window对象中有一个名为的名称为的属性,其结果存储为字符串。但我不知道为什么我的全局变量a没有覆盖该变量。感谢预期。
编辑:伙计们,我想我不清楚我的问题。我知道它是从JSFiddle引用窗口对象的名字。但我也写了var name =“窗口对象”。
为什么我的变量名称没有超过窗口对象名称,因为我认为即使已声明的var名称也应该附加到窗口对象。是不是因为,小提琴具有这样的名字被分配了类似的
JSFiddleWrapper =一个包装对象{ 名称:“窗口对象” }
,因此它引用window.name?
要调用没有它的背景下'a.getName',所以它默认为'window',一个在的jsfiddle'窗口.name'是'result'。你的代码是多余的,只要'b = a.getName()',当然? –
比较[在严格模式下的相同代码](https://jsfiddle.net/o49jn5fm/1/) –
@NiettheDarkAbsol我知道这是多余的。我正在测试“this”在写入时的行为(a.getName = a.getName)(); ;) –