小弟刚开始学习,不懂这段代码为何这样,求教解释!谢谢大家! <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>
(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
是赋值,但变量Dealer未声明,于是变成全局变量,所以函数外也能访问。var D, Dealer;
D = Dealer = {};
就OK了
{
var a=i;
}
alert(a); //显示4那这个a为什么会有值?
var d = Defer = {};
)()(function(){
Defer = {}; //变量没有用var定义是全局变量,一般不推荐使用
var d = Defer; //局部变量
)()上面这两段代码是等价的,知道原因了吗?
学到东西了,多谢
if(true) {
var a = 1;
}
alert(a);