Javascript 为什么不访问变量
似乎无法理解为什么它无法访问变量“a”:Javascript 为什么不访问变量,javascript,scope,iife,Javascript,Scope,Iife,似乎无法理解为什么它无法访问变量“a”: var a=function(){ console.log('AAA'); } (功能(){ 控制台日志(a); })();实际上你建立了一个生活。这意味着: var a = function(){ console.log('AAA'); } () 实际调用函数,并将其结果存储在。如果将一个函数作为参数放入该函数调用中,由于第一个函数不接受任何参数,因此该函数将不起作用。 var a=function(){ console.log('AAA
var a=function(){
console.log('AAA');
}
(功能(){
控制台日志(a);
})();代码>实际上你建立了一个生活。这意味着:
var a = function(){
console.log('AAA');
}
()
实际调用函数,并将其结果存储在。如果将一个函数作为参数放入该函数调用中,由于第一个函数不接受任何参数,因此该函数将不起作用。
var a=function(){
console.log('AAA');
};
(功能(){
控制台日志(a);
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');
}(…)//为什么不是呢。。。您的代码在a
的值后缺少分号。请添加分号。您正在执行第一个函数,并将第二个函数作为参数传递。然后,当您尝试调用undefined
时,它会抛出一个错误,因为没有返回值。不是吗?我会投赞成票,因为你的答案解释了问题,但它在技术上是不正确的,说,并将其结果存储在中。由于存在两个链式调用,var a=function(){…}(…)()
这就是问题中的代码段抛出错误的原因。没有解释的答案不是答案。