首頁  >  文章  >  web前端  >  函數、字串和數字實際上表現得像 JavaScript 中的物件嗎?

函數、字串和數字實際上表現得像 JavaScript 中的物件嗎?

Susan Sarandon
Susan Sarandon原創
2024-11-12 04:23:02394瀏覽

Do Functions, Strings, and Numbers Actually Behave Like Objects in JavaScript?

JavaScript 中的函數、字串和數字都是物件嗎?

JavaScript 將幾乎所有內容都宣告為物件的聲譽可能會令人費解,尤其是對於初學者。雖然物件及其方法和屬性確實發揮著重要作用,但字串、數字和函數等基元的行為卻有所不同。

基元值與物件

在 JavaScript 中,原始值是不可變的,無法透過點表示法存取。然而,JavaScript 提供了包裝物件(String、Number 和 Boolean),它們為基元賦予類似物件的方法和屬性。

包裝物件

包裝物件是在後面建立的存取圖元屬性時的場景。例如,在程式碼中:

var s = "foo";
var sub = s.substring(1, 2);

JavaScript 默默地建立一個 String 對象,呼叫 substring() 方法,然後丟棄該物件。 sub 變數現在包含基元字串“o”。

雖然看起來您可以將屬性分配給基元,但這些分配實際上是在立即丟棄的包裝器物件上執行的。因此,檢索此類屬性會產生未定義的結果,如下例所示:

var s = "foo";
s.bar = "cheese";
alert(s.bar); // undefined

函數作為物件

與基元不同,函數是繼承的完整物件來自物件。它們可以具有屬性,如以下程式碼所示:

function foo() {}
foo.bar = "tea";
alert(foo.bar); // tea

總之,原語在 JavaScript 中並不固有地具有物件特徵。然而,包裝物件提供了類似物件行為的外觀,而函數是可以與屬性和方法互動的真正物件。這種區別對於理解 JavaScript 的類型系統和做出明智的編碼決策至關重要。

以上是函數、字串和數字實際上表現得像 JavaScript 中的物件嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn