當乙個物件的屬性與本地變數同名時,不必再寫冒號和值,簡單地只寫屬性名即可。
functioncreateperson(name,age);}//
相當於function
createperson(name,age);
}
es6中對物件字面量定義方法的語法進行了改進,消除了冒號和function關鍵字。
var person=};//
相當於var person=
};
在es5及早期版本的物件例項中,如果想要通過計算得到屬性名,就需要用方括號代替點記法。有些包括某些字元的字串字面量作為識別符號會出錯,其和變數放在方括號中都是被允許的。在es6中,可在物件字面量中使用可計算屬性名稱,其語法與引用物件例項的可計算屬性名稱相同,也是使用方括號。
let lastname="last name";let person=;
console.log(person["first name"]);//
"jia"
console.log(person[lastname]);//
"xiaonuo"
由於全等運算子(===)在判斷nan===nan的返回值為false,同時判斷+0===-0時返回值為true。而正常情況下,這兩個判斷結果是恰恰相反。這時使用object.is()可以對上面的不足進行正確判斷。正常情況下還是使用全等運算子進行判斷,只有碰到上面兩種特殊情況可以使用object.is()進行判斷。
console.log(+0===-0);//true
console.log(object.is(+0,-0);//
false
console.log(nan===nan);//
false
console.log(object.is(nan,nan);//
true
混合(mixin)方法中,乙個物件接收來自另乙個物件的屬性和方法。任何使用mixin()方法的地方都可以直接使用object.assign()方法來替換,同時object.assign()方法可以接受任意數量的源物件,並按指定的順序將屬性複製到接收物件中。
var receiver={};object.assign(receiver,
,);console.log(receiver.type);
//"css"
console.log(receiver.css);//
"file.js
es5嚴格模式中加入物件字面量重複屬性的校驗,當同時存在多個同名屬性時會丟擲錯誤。在es6中重複屬性檢查被移除,一旦出現重複屬性,都會選擇最後乙個取值。
「use strict」var person=;
console.log(person.name);
//"nuo"
1.所有數字鍵按公升序排序。
2.所有字串鍵按照他們被加入物件的順序排序。
3.所有symbol鍵按照他們被加入物件的順序排序。
var obj =;obj.d=1;
console.log(object.getownpropertynames(obj).join(""));//
"012acbd"
該方法可以任意指定物件的原型,他接受兩個引數:被改變圓形的物件和替代第乙個引數原型的物件。
let person=};let dog=
};let friend=object.create(person);
console.log(friend.getgreeting());
//"hello"
console.log(object.getprototypeof(friend)===person);//
true
object.setprototypeof(friend,dog);
console.log(friend.getgreeting());
//"woo"
console.log(object.getprototypeof(friend)===dog);//
true
必須在使用簡寫方法的物件中使用super引用,但如果在其他方法宣告中使用會導致語法錯誤。
let person=};//
相當於let person={
getgreeting(){
return object.getprototypeof(this).getgreeting.call(this)+",hi!";
深入理解ES6之《擴充套件物件》
當物件字面量只有乙個屬性的名稱時,js引擎會在可訪問作用域中查詢其同名變數 如果找到則該變數的值被賦給物件字面量裡的同名屬性 function createperson name,age var person 在es5中如果屬性名中包含空格或者是動態的字串變數作為屬性名,則需要用方括號來訪問,如下所...
深入理解ES6 擴充套件物件的功能性
1.物件字面量語法擴充套件 function person name,age function person name,age 2.object.is 方法接受兩個引數,如果這兩個引數型別相同且具有相同的值,則返回true。該方法的執行結果大部分情況與 運算子相同,唯一的區別在於 0和 0被識別為不...
深入理解ES6之《解構》
如果使用var let const解析宣告變數,則必須提供初始化程式 也就是等號右側的值 以下語句有語法錯誤 var let const解構賦值表示式 也就是右側的表示式 如果為null或undefined會導致程式丟擲錯誤,因為任何嘗試讀取null或undefined的屬性的行為都會觸發執行時錯誤...