iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0

First class function

在 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 來查看:


上一篇
強制轉型
下一篇
傳值(by value)與傳參考(by reference)
系列文
那些必須了解的 JavaScript 特性與寫程式前的思考17
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言