<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ### Object * Object的實例屬性和實例方法 * Object的定義方式 * Object.is 對象對比 * Object.assign 對象合并 * * * * * > ECMAScript中的對象其實就是一組數據和功能的集合,對象可以通過new操作符后跟要創建的對象名來創建,而創建Object類型的實列并為其添加屬性和方法,就可以創建自定義對象,如下: ~~~ let o = new Object() ~~~ #### Object的實例屬性和實例方法: * constructor : 保存著用于創建當前對象的函數。對于上面的例子而言,構造函數(constructor)就是Object * hasOwnProperty(propertyName) : 用于檢查給定的屬性是否存在于在對象中的實例中(不是對象的原型鏈中),其中,作為參數的屬性名(propertyName)必須以字符串的形式指定,如:o.hasOwnProperty("name") * isPrototypeOf(Object) : 用于檢查傳入的對象是否是當前對象的原型 * propertyIsEnumerable(propertyName) : 用于檢查給定的屬性是否能用for...in語句來枚舉,用法與hasOwnProperty一樣 * toLocaleString() : 返回對象的字符串表示 * toString() : 作用同上 * valueOf() : 返回對象的字符串/數值或布爾值表示,通常與toString()的返回值一致 > 雖然Object對象實例不具備多少功能,但對于應用程序中存儲和傳輸數據而言,它確實是最理想的選擇。 #### Object的定義方式 > 創建Object對象實例有兩種方式,如下: ~~~ //第一種: let andy = new Object() andy.age =22 andy.height =183 //第二種: let andy = { age:"22", height:183 } //或者(同屬第二種方法) let andy = {} andy.age =22 andy.height =183 ~~~ > 上面代碼中通過第二種方式(對象字面量)定義對象時,實際上并不會調用Object()構造函數。 ES6允許直接寫入變量和函數,作為對象的屬性和方法。這樣的書寫更加簡潔。如下: ~~~ let foo = 'bar'; let baz = {foo}; baz // {foo: "bar"} // 等同于 let baz = {foo: foo}; ~~~ > 除了上面定義屬性屬性的簡寫外,對象的方法也可以簡寫。如下: ~~~ let o = { method() { return "Hello!"; } }; // 等同于 let o = { method: function() { return "Hello!"; } }; ~~~ #### Object.is 對象對比 > ES5比較兩個值是否相等,只有兩個運算符:相等運算符(==)和嚴格相等運算符(===)。它們都有缺點,前者會自動轉換數據類型,后者的NaN不等于自身,以及+0等于-0。ES6提出“Same-value equality”(同值相等)算法,用來解決這個問題。 **Object.is**就是部署這個算法的新方法。它用來比較兩個值是否嚴格相等,與嚴格比較運算符(===)的行為基本一致。如下: ~~~ Object.is('foo', 'foo') // true Object.is({}, {}) // false Object.is(+0, -0) // false Object.is(NaN, NaN) // true ~~~ #### Object.assign 對象合并 > **Object.assign**方法用于對象的合并,將源對象(source)的所有可枚舉屬性,復制到目標對象(target)。代碼如下: ~~~ let target = { a: 1 }; let source1 = { b: 2 }; let source2 = { c: 3 }; Object.assign(target, source1, source2); target // {a:1, b:2, c:3} ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看