JS 函數、具名函式表示式 NFE (Named Function Expression)
05 Jan 2020
Named Function Expression
在 JavaScript 中函數就是值,而每個值都有一個類型,簡言之函數就是物件
可以通過 name 屬性來取得一個函數的名稱 ( 非執行 )
第 1 種
function sayHi() {
return 'hi';
}
console.log(sayHi.name);
第 2 種
let sayHi = function() {
return 'hi';
};
console.log(sayHi.name);
第 3 種
function f(sayHi = function() {}){
console.log(sayHi.name);
}
f();
3 種的結果相同

但是注意⚠️,它只取得函數名稱,並不是執行函數
具名函式表示式 NFE (Named Function Expression)
給函式表達式一個名稱,用途是在內部執行自己,外部是無法直接使用的
let sayHi = function justSayHi(who) {
if (who) {
console.log(`Hello, ${who}`);
} else {
justSayHi('Guest');
}
};
sayHi('Ben');
sayHi();

經測試,如果改為 return 將會取得 undefined,目前仍未理解….
let sayHi = function justSayHi(who) {
if (who) {
return `Hello, ${who}`;
} else {
justSayHi('Guest');
}
};
console.log(sayHi('Ben'));
console.log(sayHi());

回上一頁