我曾以为我的notIife函数声明在notIife()调用时已被提升并存储在内存中。 ife妇如何干预呢?
function notIife() {
y = 2;
var z = 2;
}
notIife() //*Uncaught TypeError: notIife(...) is not a function*
(function iife() {
iy = 3
var iz = 3
})()
//notIife() - works.
notIife()
函数调用后没有分号,因此javascript将IFFI
表达式视为notIife()
函数的一部分。
function notIife() {
y = 2;
var z = 2;
}
notIife();
(function iife() {
iy = 3
var iz = 3;
console.log('Working IFFI');
})()