什么是JavaScript對象?


對象是JavaScript的基本數據類型。對象是一種復合值:它將很多值(原始值或者其他對象)聚合在一起,可通過名字訪問這些值。對象也可看做是屬性的無序集合,每個屬性都是一個名/值對。屬性名是字符串,因此我們可以把對象看成是從字符串到值得映射。然而,對象不僅僅是字符串到值的映射,除了可以保持自有屬性,JavaScript對象還可以從一個稱為原型的對象繼承屬性。對象的方法通常是繼承的屬性。這種“原型式繼承”(prototypal inheritance)是JavaScript的核心特征。

除了字符串、數字、true、false、null和undifined之外,JavaScript中的值都是對象。

對象直接量

創建對象最簡單的方式就是在JavaScript代碼中使用對象直接量。對象直接量是由若干名/值對組成的映射表,名/值對中間用冒號分隔,名/值對之間用逗號分隔,整個映射表用花括號括起來。屬性名可以是JavaScript標識符,也可以是字符串直接量(包括空字符串)。屬性值可以是任意類型的JavaScript表達式,表達式的值(可以是原始值也可以是對象值)就是這個屬性的值。下面有一些例子:

        var empty={};//沒有任何屬性的對象
        var point={x:0,y:0}//兩個屬性
        var point2={x:point.x,y:point.y+1};//更復雜的值
        var book={
            "main title":"JavaScript",//屬性名字中有空格,必須用字符串表示
            'sub-title':"The Definitive Guide",//屬性名字里面有連字符,必須用字符串表示
            "for":"all audiences",//for是保留字,必須用引號
            author:{              //這個屬性的值是一個對象
                firstname:"David",    //這里的屬性名都沒有引號 
                surname:"Flanagan"
            }
        }

在ECMAScript5(以及ECMAScript 3的一些實現)中,保留字可以用作不帶引號的屬性名。然而對ECMAScript 3來說,使用保留字作為屬性名必須使用引號引起來。在ECMAScript 5中,對象直接量中的最后一個屬性后的逗號將忽略,且在ECMAScript 3的大部分實現中也可以忽略這個逗號,單在IE中則報錯。

對象直接量是一個表達式,這個表達式的每次運算都創建一個新的對象。每次計算對象直接量的時候,也都會計算它的每個屬性的值。也就是說,如果在一個重復調用的函數中的循環體內使用了對象直接量,它將創建很多新對象,並且每次創建的對象的屬性值也有可能不同。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM