1.2.3.15.立即呼叫的函數表示式(IIFEs)
複習前面所提過的函式陳述句, JavaScript engine看到函數時會將牠放到記憶體中, 但是在呼叫時才會執行
寫法如下:
greet('John'); function greet(name) { console.log('Hello ' + name); }
函數表達式, 一開始不會被放到記憶體中, 直到執行這行時, JavaScript engine會立即創造這個物件
寫法如下:
var greetFunc = (name) { console.log('Hello ' + name); } greetFunc('John');
立即呼叫的函數表達式 (immediately invoked function expression, IIFE)
在函數創造後立即呼叫, 寫法如下:
var greeting = function(name) { return Hello ' + name; }('John'); console.log(greeting);
當想要一個函式陳述句, 但又不使用函式陳述句的寫法
因為在括號內的東西一定要是陳述式
// 不會執行 (function (name) { return 'Hello ' + name; }); //IIFE (function (name) { console.log('Hello ' + name); }('John')); //或這樣寫 (function (name) { console.log('Hello ' + name); })('John');
Last updated
Was this helpful?