Javascript - 需要对 IIFE 中的变量进行解释
Javascript - need explanation on the variable inside IIFE
我有这段代码 - 我只是想知道为什么在我将 'var' 添加到 foo 变量后,它不起作用(它显示 foo 未定义)...任何人都可以帮助解释这两个函数吗?谢谢!
window.onload = function() {
var test = foo().steps(2);
console.log(test);
}
(function() {
//if I remove var, then it prints out a function which is what I expected
var foo = function() {
var steps = 1;
function callMe(g) {
//do something else
console.log("hello" + g);
}
callMe.steps = function(x) {
//if no arguments then return the default value
if (!arguments.length) return steps;
console.log(arguments);
//otherwise assign the new value and attached the value to callMe
steps = x;
return callMe;
}
return callMe;
}
})();
将 var
添加到 foo 使 foo 成为 IIFE 内部的局部变量,因此您无法在外部访问它。
我有这段代码 - 我只是想知道为什么在我将 'var' 添加到 foo 变量后,它不起作用(它显示 foo 未定义)...任何人都可以帮助解释这两个函数吗?谢谢!
window.onload = function() {
var test = foo().steps(2);
console.log(test);
}
(function() {
//if I remove var, then it prints out a function which is what I expected
var foo = function() {
var steps = 1;
function callMe(g) {
//do something else
console.log("hello" + g);
}
callMe.steps = function(x) {
//if no arguments then return the default value
if (!arguments.length) return steps;
console.log(arguments);
//otherwise assign the new value and attached the value to callMe
steps = x;
return callMe;
}
return callMe;
}
})();
将 var
添加到 foo 使 foo 成为 IIFE 内部的局部变量,因此您无法在外部访问它。