2.16-Es6對象變化

對象屬性簡寫

let name = 'zizi';
let age = 24;
// let work = function() {
//     console.log('working hard');
// }
let person = {
    name,   //name: name,
    age,    //age: age
    //work
    work() {
        console.log('working hard');
    }
}
console.log(person.name, person.age);
person.work();

Object.is() 比較兩個值是否相等

console.log(Object.is(1,1));  //true
console.log(NaN === NaN);     //false
console.log(Object.is(NaN,NaN));  //true

Object.assign() 將多個對象複製給另外一個

let nameObj = {name: 'zizi'};
let ageObj = {age: 24};
let newObj = {};
Object.assign(newObj,nameObj,ageObj); //{ name: 'zizi', age: 24 }
console.log(newObj);

Object.setPrototypeOf() 設置對象上的原型

let nameObj1 = {name: 'zizi'};
let nameObj2 = {name: 'ran'};
let obj3 = {};
Object.setPrototypeOf(obj3,nameObj1);  
console.log(obj3.name, obj3.constructor);  //zizi
console.log(Object.getPrototypeOf(obj3));  //{ name: 'zizi' }

__ proto __設置原型

let nameObj2 = {name: 'ran'};
obj3 = {
    __proto__: nameObj2
}
console.log(Object.getPrototypeOf(obj3)); //{ name: 'ran' }

super() 代表父類

let obj = {name: 'zizi'};
let obj2 = {
    __proto__: obj,
    name: 'it',
    getName() {
        return super.name
    }
}
console.log(obj2.getName());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章