javascript - 为什么变量没有被访问

标签 javascript scope iife

似乎无法弄清楚为什么它无法访问变量“a”:

var a = function(){
    console.log('AAA');
}
(function(){
    console.log(a);
})();

最佳答案

这里的问题是你试图调用一个函数,如下undefined(),为什么?

这就是正在发生的事情:

var a = function(){
    console.log('AAA');
}(...) //<- here you're calling the function `a`, but your function `a` doesn't return anything (`undefined`)

您可以通过添加分号来解决此问题:

var a = function(){
    console.log('AAA');
}; //<- HERE!

(function(){
    console.log(a);
})();

或者,您可以将函数a声明为声明而不是表达式

看看这个 Question多了解一点。

function a(){
    console.log('AAA');
}

(function(){
    console.log(a);
})();

资源

关于javascript - 为什么变量没有被访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48909245/

相关文章:

javascript - 更改 Google Maps JavaScript API v3 圈外的 map 不透明度

object - 访问对象内的字值

javascript - 为 javascript 库创建命名空间

javascript - 你应该将 IIFE 与 RequireJS 一起使用吗

javascript - 正确的 javascript IIFE 模板是什么?

javascript - webpack 路径浏览器 polyfill 失败

javascript - 如何在 jQuery 的 Flexigrid 单元格中放置下拉菜单?

javascript - 带有自定义 webpack 构建的 vscode Node 调试器

javascript - Node js 在 module.exports 中使用函数调用中的 "this"

c++ - 如果 'C' 公开继承自 'B',B 私自继承自 'A',为什么我不能在 'A' 内部创建 'C' 的对象?