首頁  >  文章  >  web前端  >  Javascript 基元其實是物件嗎?

Javascript 基元其實是物件嗎?

Linda Hamilton
Linda Hamilton原創
2024-11-17 06:56:03993瀏覽

Are Javascript Primitives Actually Objects?

Javascript 基元與物件:澄清概念

儘管普遍認為“Javascript 中幾乎所有內容都是物件”,但並非所有內容語言中的實體遵循這個定義。基元和物件之間的區別需要澄清。

基元

與物件相反,基元是以其基本形式存在的不可變值。它們缺少方法和屬性,並包含以下資料類型:

  • 字串
  • 數字
  • 布林值

物件包裝器

基元具有提供方法和屬性的對應物件包裝器(字串、數字、布林值)。然而,基元本身並不是對象。為了與基元的屬性進行交互,Javascript 會隱式地為操作建立一個包裝物件。

字串範例

考慮下面的程式碼片段:

var s = "foo";
var sub = s.substring(1, 2); // sub is now the string "o"

Javascript 內部執行以下步驟:

  1. Javascript 內部執行以下步驟:
  2. 從s 建立一個String 包裝物件。
  3. 呼叫 String 物件的 substring() 方法。
處理 String 物件。

傳回結果字串。

嘗試將屬性分配給基元
var s = "foo";
s.bar = "cheese";
alert(s.bar); // undefined

將屬性分配給基元不是實際上是可能的,因為任何此類屬性都將與臨時包裝物件而不是基元本身相關聯:

函數作為物件
function foo() {}
foo.bar = "tea";
alert(foo.bar); // tea

函數,另一方面,是能夠從Object 類別繼承的真正物件。它們擁有屬性並且可以像其他物件一樣進行操作:總之,雖然基元可能看起來具有類似物件的行為,但它們與 Javascript 中的真實物件不同。物件包裝器允許與原始值交互,但原始值保持不可變。然而,函數是 полноценные объекты,具有所有物件功能的完全成熟的物件。這種理解澄清了 Javascript 語言中原語和物件之間的關係。

以上是Javascript 基元其實是物件嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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