Javascript 基元與物件:澄清概念
儘管普遍認為“Javascript 中幾乎所有內容都是物件”,但並非所有內容語言中的實體遵循這個定義。基元和物件之間的區別需要澄清。
基元
與物件相反,基元是以其基本形式存在的不可變值。它們缺少方法和屬性,並包含以下資料類型:
物件包裝器
基元具有提供方法和屬性的對應物件包裝器(字串、數字、布林值)。然而,基元本身並不是對象。為了與基元的屬性進行交互,Javascript 會隱式地為操作建立一個包裝物件。
字串範例
考慮下面的程式碼片段:
var s = "foo"; var sub = s.substring(1, 2); // sub is now the string "o"
Javascript 內部執行以下步驟:
傳回結果字串。
嘗試將屬性分配給基元var s = "foo"; s.bar = "cheese"; alert(s.bar); // undefined
將屬性分配給基元不是實際上是可能的,因為任何此類屬性都將與臨時包裝物件而不是基元本身相關聯:
函數作為物件function foo() {} foo.bar = "tea"; alert(foo.bar); // tea函數,另一方面,是能夠從Object 類別繼承的真正物件。它們擁有屬性並且可以像其他物件一樣進行操作:總之,雖然基元可能看起來具有類似物件的行為,但它們與 Javascript 中的真實物件不同。物件包裝器允許與原始值交互,但原始值保持不可變。然而,函數是 полноценные объекты,具有所有物件功能的完全成熟的物件。這種理解澄清了 Javascript 語言中原語和物件之間的關係。
以上是Javascript 基元其實是物件嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!