gpt4 book ai didi

Javascript 作用域未定义

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:35:28 26 4
gpt4 key购买 nike

jquery官网关于javascript作用域的在线文档有问题,有代码;

(function() {

var baz = 1;

var bim = function() {
console.log( baz );
};

bar = function() {
console.log( baz );
};

})();

并说:

console.log( baz ); // baz is not defined outside of the function

我不明白的是,即使定义了 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 );
};

})();

它会起作用。

附:

这就是 jQuery 将 $/jQuery 附加到窗口的方式(当它们以 bla bla.. 结束时)。 (只有 window.$ 位于最后一行)。

关于Javascript 作用域未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19783729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com