window指代大局this
window指代全局this
学习<王者归来>时遇到的问题 ...
看代码 :
----辅助内容
疑惑
结果是:10 function () { return 1; }
但如果代为:
结果为:function () { return 1; } function () { return 1; }
疑惑中 ,应该返回的是第二种 ,为什么this的属性名定义的和外部一样时会出现这种问题....
在变一种提交方式 ...
把代码一改一下 ..
执行的结果是 :function () { return 1; } function () { return 1; }
如此怪异的行为 ,我在FF调试下发现 , 在执行 (2)时 ,要从新进入test()函数,改写aa的值 ,
如果代码为
也是预期的效果
我想这应该是全局变量名的问题 . 在test()函数中 this指代的是window对象 ,
在执行完 var aa = new test(); aa应该是 function(){...}
但在 var b = test()中 this.aa = 10 有从写了aa就出现了代码一的样式 ...
不知正确与否 , 望高手指正 ,
学习<王者归来>时遇到的问题 ...
看代码 :
----辅助内容
function dwn(_a_) { document.write(_a_ + "<br/>") ; }
疑惑
function test() { this.aa = 10 ; return function() { return 1 ; } } var aa = new test(); var b = test(); dwn( aa+' ' +b )
结果是:10 function () { return 1; }
但如果代为:
function test() { this.aa = 10 ; return function() { return 1 ; } } var a = new test(); var b = test(); dwn( a +' ' +b )
结果为:function () { return 1; } function () { return 1; }
疑惑中 ,应该返回的是第二种 ,为什么this的属性名定义的和外部一样时会出现这种问题....
在变一种提交方式 ...
把代码一改一下 ..
function test() { this.aa = 10 ; return function() { return 1 ; } } var b = test(); // (1) var aa = new test(); //(2) dwn( aa+' ' +b )
执行的结果是 :function () { return 1; } function () { return 1; }
如此怪异的行为 ,我在FF调试下发现 , 在执行 (2)时 ,要从新进入test()函数,改写aa的值 ,
如果代码为
var aa = new test(); dwn(aa) var b = test(); dwn(b) ;
也是预期的效果
我想这应该是全局变量名的问题 . 在test()函数中 this指代的是window对象 ,
在执行完 var aa = new test(); aa应该是 function(){...}
但在 var b = test()中 this.aa = 10 有从写了aa就出现了代码一的样式 ...
不知正确与否 , 望高手指正 ,