实在不解...为什么暴露出来了。
小弟刚开始学习,不懂这段代码为何这样,求教解释!谢谢大家!
<script type="text/javascript"> (function () { var D = Dealer = {}; D.fn = { test: function () { alert('1'); } }; })(); //为什么 Dealer可以访问 Dealer.fn.test(); //D却不行 //D.fn.test(); // D = Dealer = {}; 这个不是赋值的意思?Dealer这个对象为什么会暴露了? </script>var Dealer = 1;(function(){ var D = Dealer = 2;})()alert(Dealer);//2
[解决办法]
var D = Dealer = {};
是赋值,但变量Dealer未声明,于是变成全局变量,所以函数外也能访问。
var D, Dealer;
D = Dealer = {};
就OK了
[解决办法]
js没有作用域块,只有函数级别的作用域
[解决办法]
(function(){ var d = Defer = {};)()