ES6系列_9之物件
阿新 • • 發佈:2018-12-02
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);
結果為: