一、屬性簡寫數組
ES6容許直接寫入變量和函數,做爲對象的屬性和方法,這時,當對象屬性名與屬性值名(注意:此時屬性值用一個變量代替)相同時能夠簡寫;函數
var name = 'zhangsan'; var user = {name}; //等同於 var user = {name:name}
二、方法簡寫spa
//對象方法 ES5 寫法 var user = { sayName:function(){ ... } } //ES6寫法 var user = { sayName(){ ... } }
三、屬性表達式prototype
ES6容許字面量定義對象時,能夠把表達式放在括號內code
let flag = 'key'; let obj = {[flag]:true,['a'+'bc':123]}; /// obj = {key:true,abc:123}
四、對象方法的 name 屬性,返回函數名對象
const person = { sayName() {}}; console.log(person.sayName.name);// "sayName"
五、Object.is() 同值相等,與 ‘===’相似,與之不一樣之處在於:+0不等於-0,NaN等於自身blog
console.log(Object.is(NaN,NaN));// true
六、Object. setPrototypeOf(obj,prototype) ;繼承
用來設置一個對象的prototype對象,返回參數對象自己。它是 ES6 正式推薦的設置 原型對象的方法。該方法等同以下寫法:get
function (obj, proto) { obj.__proto__ = proto; return obj; }
七、Object. getPrototypeOf(obj)原型
用於讀取一個對象的原型對象
八、遍歷對象
①Object.keys(obj),返回一個數組,成員是參數對象自身的(不含繼承的)全部可遍歷(enumerable)屬性的鍵名
var obj = { name:'zjl', age:19, gender:'男' } console.log(Object.keys(obj)) //[ 'name', 'age', 'gender' ]
②Object.values(obj),返回一個數組,成員是參數對象自身的(不含繼承的)全部可遍歷(enumerable) 屬性的鍵值
var obj = { name:'zjl', age:19, gender:'男' } console.log(Object.values(obj)) //[ 'zjl', 19, '男' ]
③Object. entries(obj) 返回一個數組,成員是參數對象自身的(不含繼承的)全部可遍歷(enumerable) 屬性的鍵值對數組。
var obj = { name:'zjl', age:19, gender:'男' } console.log(Object.entries(obj)) //[ [ 'name', 'zjl' ], [ 'age', 19 ], [ 'gender', '男' ] ]
九、Object.assign(),用於對象的合併,將源對象(source)的全部可枚舉屬性,複製到目標對象(target )。
Object.assign方法實行的是淺拷貝,而不是深拷貝。也就是說,若是源對象某個屬 性的值是對象,那麼目標對象拷貝獲得的是這個對象的引用。
let obj = { name:'hah', friends:[], count:{} } let obj3 = Object.assign({},obj); console.log(obj3 === obj); //false console.log(obj3.friends === obj.friends); // true 淺複製 console.log(obj3.count === obj.count) //true 淺複製