关于javascript范围的jquery网站的在线文档我有问题.有代码;
(function() {
var baz = 1;
var bim = function() {
console.log( baz );
};
bar = function() {
console.log( baz );
};
})();
Run Code Online (Sandbox Code Playgroud)
并说:
console.log( baz ); // baz is not defined outside of the function
Run Code Online (Sandbox Code Playgroud)
我不明白的是,即使baz已定义,为什么console.log(baz)未定义.因为我认为范围是一样的.我错过了什么?
陷阱是IIFE- 立即调用的函数表达式,它创建自己的范围.
JS正在使用函数范围
所以baz是不是该IIFE之外定义.
change this to :
(function() {
window.baz = 1; <----
var bim = function() {
console.log( baz );
};
bar = function() {
console.log( baz );
};
})();
Run Code Online (Sandbox Code Playgroud)
它会奏效.
PS
这是jQuery如何附加(当他们完成bla bla ..)$/jQuery到窗口.(只有窗口.$位于最后一行).
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |