Javascript 使函数返回的变量在包含函数内可访问
我无法返回Javascript 使函数返回的变量在包含函数内可访问,javascript,Javascript,我无法返回数据变量,以便其他函数可以使用该自执行函数console.log正在吐出未定义的。。。知道我做错了什么吗 (function(){ var dataVariable; function boom(){ dataVariable = document.querySelectorAll('.className'); return dataVariable; } console.log(dataVariab
数据变量
,以便其他函数可以使用该自执行函数console.log
正在吐出未定义的。。。知道我做错了什么吗
(function(){
var dataVariable;
function boom(){
dataVariable = document.querySelectorAll('.className');
return dataVariable;
}
console.log(dataVariable);
})();
dataVariable是在boom函数中分配的,请尝试执行boom并在控制台中记录它=),希望这对您有所帮助
(function(){
var dataVariable;
function boom(){
dataVariable = document.querySelectorAll('.className');
return dataVariable;
}
console.log(boom());
})();
内部函数将返回dataVariable
。但是外部函数没有设置为返回任何内容。实际上,您也没有调用内部的boom()
函数,因此它不会执行 除非调用函数,否则函数声明不会执行(返回)任何操作。
Sovar数据变量代码>结束时未初始化,因此其值未定义
(function(){
var dataVariable;
function boom(){
dataVariable = document.querySelectorAll('.className');
return dataVariable;
}
boom();// missing line
console.log(dataVariable);
})();
您需要调用boom函数才能执行该代码
(function(){
function boom(){
return document.querySelectorAll('.className');
}
var dataVariable = boom();
console.log(dataVariable);
})();
如果您想要执行boom
execute,那么您需要调用它,我认为如果您放置行boom()你的控制台上方的code>。log
你会得到你期望的结果。您还可以执行dataVariable=boom()
但这是多余的,因为在函数内部以及函数返回时都会赋值。外部函数未设置为返回IIFE在放入变量之前无法返回。