Нижеприведенные работает, как предполагалосьФункциональное выражение с использованием IIFE в качестве параметра?
var dogName = function animalName(name) {
console.log("My name is " + name);
}
dogName('Scruffy');
(function() {
console.log("My name is Fido!");
})();
Если закомментировать dogName ('неряшливо'); он выводит этот
My name is function() {
console.log("My name is Fido!");
}
Если вы регулируете IIFE к
(function() {
console.log("My name is Fido!");
}()); //()) instead of)()
Он выводит
My name is Fido!
My name is undefined
Почему функциональное выражение используют IIFE, как это имя переменной, и почему это IIFE выполняется в первом примере перед функциональным выражением?
Если закомментировать промежуточную линию, которая содержит четкую точку с запятой, она становится 'функция animalName (имя) {...} (функция ...)' ... An IIFE. Положите ';' после определения 'animalName'. – deceze
Связано: ['TypeError':' console.log ('...') 'не является функцией] (http://stackoverflow.com/q/31013221/4642212). – Xufox