在 javascript 中, 可以對 function 做基本型別(純值)與物件能做的事,
像是把 function 賦值給變數,
或是把 function 當作呼叫 function 時的參數.
在 JavaScript 中 function 算是一種特殊的物件,
function 可以像物件一樣透過 .
運算子新增屬性,
屬性的值可以是任何型別以及另一個新建的 function,
透過以下程式碼來驗證:
function english() {
}
english.a = 123;
english.b = {name: "jimmy"}
english.c = function() {
console.log(0);
}
console.log(english);
console.log(english.a);
console.log(english.b);
console.log(english.c);
透過開發者工具的 console 來查看:
除了上述屬性外,其實 function 還有兩個隱藏的屬性,
名稱屬性與程式碼屬性:
function 可以是匿名的,不一定需要名稱,
可透過 function 名稱呼叫 function 來執行程式碼屬性中的程式碼,
因此在 javascript 中可以把 function 看作是一種特殊的物件.
除了可以在呼叫 function 時同時創造各種型別的值當作參數傳入 function :
function log(a) {
console.log(a);
}
log(3);
log("Hi");
log({name: "Jimmy", gender: "male"});
透過開發者工具的 console 來查看:
也試著將一個匿名 function 當作參數傳入並呼叫:
function log(a) {
console.log(a);
a();
}
log(function() {
console.log("Hi~");
})
透過開發者工具的 console 來查看: