首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

实在不解.为什么暴露出来了。解决方案

2012-03-22 
实在不解...为什么暴露出来了。小弟刚开始学习,不懂这段代码为何这样,求教解释!谢谢大家!JScript codescri

实在不解...为什么暴露出来了。
小弟刚开始学习,不懂这段代码为何这样,求教解释!谢谢大家!

JScript code
    <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>


[解决办法]
你这样定义Dealer是全局变量
JScript code
var Dealer = 1;(function(){   var D = Dealer = 2;})()alert(Dealer);//2
[解决办法]
var D = Dealer = {};
是赋值,但变量Dealer未声明,于是变成全局变量,所以函数外也能访问。

var D, Dealer;
D = Dealer = {};
就OK了
[解决办法]
js没有作用域块,只有函数级别的作用域
[解决办法]
JScript code
(function(){    var d = Defer = {};)() 

热点排行