JavaScript 物件 & 函數

Jacy Chu
Aug 30, 2021

--

JavaScript 筆記

📝 此篇整理 JavaScript 物件 & 函數

JavaScript Object

物件,是被賦予值的名稱組合。物件有屬性和方法。
Object has primitive property.
Object has object property, function method.
想像物件在記憶體中有個位置,能夠參考其他和它相關的記憶體位置。

一級函數 First Class Function

JavaScript 中的函數就是物件
指派一個變數的值為函數,可以將函數當作參數傳入另一個函數,也可以用實體語法立即創造函數。
函數一樣寫在記憶體中,具備所有物件的特色,還有一些其他屬性。
函數可以有屬性和方法。有一些隱藏的特殊屬性:name(optional)(沒有名字的即是匿名函數) & code property程式屬性,這個屬性是可以呼叫的 invocable。

一級函數的概念:可以把函數傳入別處。把函數傳給另一個函數,就像使用變數一樣!

函數陳述句 & 函數表示式

📍 函數表示式 Expression
A unit of code that results in a value. It doesn’t have to save to a variable.
會回傳一個值,值可以是數字、字串或是物件。

📍 函數陳述句 Statement
函數陳述句會被放進記憶體中,當它被執行,不會回傳值,在執行環境的創造階段會有提升效果。舉例:if statement
if( Expression is here ) {xxx};

兩者差異:陳述句在執行階段的時候,只會知道那邊有個函數。然而表示式會讓物件被創造出來,回傳一個物件(值)。

By value & By reference

都和變數 variable 有關,純值 by value ,物件 by reference。

Array & Object 如果直接用等號,都是 by reference。若只要複製值,不要參考到原本的位置,可以用擴展運算符(…)協助(為淺拷貝)。還有其他方法可以使用,詳細請參考下方兩篇文章:

🖇 ES6 Way to Clone an Array
🖇 3 Ways to Clone Objects in JavaScript

📐✏️ 📏

若有任何錯誤請在下方留言~🙏 Thanks!

--

--