页次: 1
先看一个示例代码
var age = 100; function Test(name, age) { this.name = name; if(age) { this.age = age; } else { this.age = 200; } } Test(); alert(age);
这段代码可以分成两个部分看。
第一个部分就是 var age = 100;
其余的部分是第二个部分。
输出结果是 200 .
表明 第二部分把第一部分的值给修改了。
本来 Test() 应该是个构造函数(javascript 中什么是构造函数) 来产生对象用的。结果直接给执行了。 构造函数中是有this 关键字的。
如果直接执行了, 在这个环境中this 就是表示 window 了。
结果就是 window.age = 200; 就把值给修改了。
所以说构造函数是不能直接执行了, 会产生变量,或者修改变量。
可以再 Test() 中加入
alert(this === window) // 执行的结果是 true
<a href="http://www.ipbbs.net/viewforum.php?id=4"> jquery教程</a>
离线
页次: 1