深入理解ES6四

ES6規(guī)范清晰的定義了對象的類別

  • 普通對象 具有JavaScript對象所有的默認(rèn)內(nèi)部行為
  • 特異對象 具有某些與默認(rèn)行為不符的內(nèi)部行為
  • 標(biāo)準(zhǔn)對象 ES6中規(guī)范定義的對象
  • 內(nèi)建對象 腳本開始執(zhí)行時存在于JavaScript執(zhí)行環(huán)境中的對象,所有標(biāo)準(zhǔn)對象都是內(nèi)建對象

對象字面量語法的擴(kuò)展

  • 屬性初始化簡寫語法:當(dāng)一個對象的屬性與本地變量同名時,不必要再寫冒號和值,簡單地只寫屬性名即可。當(dāng)對象字面量里只有一個屬性的名稱時,JavaScript引擎會在可訪問作用域中查找其同名變量,如果找到,則該變量的值被復(fù)賦值給對象字面量里的同名屬性
function Person(name,age) {
    reutrn {
        name,
        age
    }
}
  • 對象方法的簡寫語法:消除了冒號和關(guān)鍵字function,與傳統(tǒng)對象方法的區(qū)別是簡寫方法可以使用super關(guān)鍵字
let person = {
    name:'tgb',
    sayName() {
        console.log(this.name);
    }
}
  • 可計算屬性名:在ES6中可以在對象字面量中使用可計算屬性名稱,對象字面中使用方括號表示該屬性名稱時可計算的
let suffix = 'name'
let person = {
    ['first'+suffix]: 'Nicholas',
    ['last'+suffix]:'Zakas'
}
console.log(person['first name']);
console.log(person['last name']);

ES6新增方法

  • Object.is()方法:這個方法接受兩個參數(shù),如果兩個參數(shù)的類型相同且具有相同的值,則返回true。用來彌補(bǔ)全等運(yùn)算符的不準(zhǔn)確運(yùn)算。
console.log(+0 === -0)  //true;
console.log(Object.is(+0,-0)); //false

console.log(NaN === Nan); //false
console.log(Object.is(NaN,NaN)) //true
  • Object.assign()方法:混入方法,這個方法接受一個對象和任意數(shù)量的源對象,最終返回接受對象
let obj = {};
Object.assign(obj,
    {
        type:'js';
        name:'file.js'
    },
    {
        type:'css  //如果多個源對象具有同名的屬性則排位靠后的源對象會覆蓋排位靠前的
    }
)
console.log(obj.type); //'css'
console.log(obj.name); //'file.js'

增強(qiáng)對象原型

  • ES6新增Object.setPrototypeOf()方法:這個方法可以改變?nèi)我庵付▽ο蟮脑?,它接受兩個參數(shù);被改變的對象原型的對象以及要替代第一個參數(shù)原型的對象
let person = {
    getGreeting() {
        return 'Hello';
    }
};
let dog = {
    getGreeting() {
        return 'Woof'
    }
}
let friend = Object.create(person);
console.log(Object.getPrototypeOf(firend)===person); //true

Object.setPrototypeOf(friend,dog);
console.log(Object.getPrototypeOf(friend)===dog); //true
  • 簡化原型訪問的Super引用
    • Super引用相當(dāng)于指向?qū)ο笤偷闹羔槪褪荗bject.getPrototypeOf(this)的值
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 三,字符串?dāng)U展 3.1 Unicode表示法 ES6 做出了改進(jìn),只要將碼點放入大括號,就能正確解讀該字符。有了這...
    eastbaby閱讀 1,674評論 0 8
  • 1.屬性的簡潔表示法 允許直接寫入變量和函數(shù) 上面代碼表明,ES6 允許在對象之中,直接寫變量。這時,屬性名為變量...
    雨飛飛雨閱讀 1,283評論 0 3
  • 一、ES6簡介 ? 歷時將近6年的時間來制定的新 ECMAScript 標(biāo)準(zhǔn) ECMAScript 6(亦稱 ...
    一歲一枯榮_閱讀 6,212評論 8 25
  • 屬性的簡潔表示法 ES6允許直接寫入變量和函數(shù),作為對象的屬性和方法。這樣的書寫更加簡潔。 上面代碼表明,ES6允...
    呼呼哥閱讀 3,024評論 0 2
  • 我是日記星球的185號星寶寶,正在參加第八期的寫作訓(xùn)練,這是我的第134篇日記 開心一天也是過,不開心一天也是過,...
    馨之芬芳閱讀 232評論 1 2

友情鏈接更多精彩內(nèi)容