1. 程式人生 > >ES6系列_9之物件

ES6系列_9之物件

 1.物件賦值

es5中的物件賦值方式如下:

let name="小明";
let skill= 'es6開發';
var obj= {name:name,skill:skill};
console.log(obj);

結果為:

ES6允許把宣告的變數直接賦值給物件,例如:

let name="小明";
let skill= 'es6開發';
var obj= {name,skill};
console.log(obj);

結果與上述相同。

2.物件Key值構建

有時候我們會在後臺取出key值,而不是我們前臺定義好的,這時候我們可以我們可以把後臺定義的key值重新構建返回給後臺。

 在前端我們可以用[ ] 的形式,進行物件的構建。

let key='skill';//假定是後臺定義的key值
var obj={
    [key]:'web'  //構建key值
}
console.log(obj.skill);//web

3.自定義物件方法

 物件方法就是把物件中的屬性,用匿名函式的形式程式設計方法。

var obj={
    add:function(a,b){
        return a+b;
    }
}
console.log(obj.add(1,2));  //3

4.Object.is( ) 物件比較

ES5的物件比較方法,經常使用===來判斷,如下:

var obj1 = {name:'admin'};
var obj2 = {name:'admin'};
console.log(obj1.name === obj2.name);//true

ES6為我們提供了is方法進行對比,如下:

var obj1 = {name:'admin'};
var obj2 = {name:'admin'};
console.log(Object.is(obj1.name,obj2.name))//true

區分=== 和 is方法的區別是什麼,看下面的程式碼輸出結果。

console.log(+0 === -0);  //true
console.log(NaN === NaN ); //
false

console.log(Object.is(+0,-0)); //false console.log(Object.is(NaN,NaN)); //true

記憶為:===為同值相等,is()為嚴格相等。

6.Object.assign( )合併物件

使用assgin( )可以實現像陣列一樣的合併操作。

var a={a:'a'};
var b={b:'b'};
var c={c:'c'};
let d=Object.assign(a,b,c)
console.log(d);

結果為: