1、ES6 對象定義簡寫
es6提供了對象定義里的屬性,方法簡寫方式:
假如屬性和變量名一樣,可以省略,包括定義對象方法function也可以省略
<script type="text/javascript"> let name = 'jack'; let sex = 'man'; //傳統方式 let obj1 = { name:name, sex:sex, getName:function(){ return this.name; } } //簡寫 //假如屬性和變量名一樣,可以省略,包括定義對象方法function也可以省略 let obj2={ name, sex, getName(){ return this.name; } } console.log(obj1,obj1.getName()); console.log(obj2,obj2.getName()); </script>
2、ES6 對象常用的擴展方法
<script type="text/javascript"> // 對象方法 /* Object.assign(target, source_1, ···) 用於將源對象的所有可枚舉屬性復制到目標對象中。 返回值是target對象 如果目標對象和源對象有同名屬性,或者多個源對象有同名屬性,則后面的屬性會覆蓋前面的屬性。 */ let target = {a: 1}; let object2 = {b: 2}; let object3 = {c: 3}; let returnObj=Object.assign(target,object2,object3); console.log(target) // {a: 1, b: 2, c: 3} console.log(returnObj) // {a: 1, b: 2, c: 3} // 注意點:assign 的屬性拷貝是淺拷貝: just copy的是引用 let sourceObj = { a: { b: 1}}; let targetObj = {c: 3}; Object.assign(targetObj, sourceObj); targetObj.a.b = 2; console.log(sourceObj.a.b); // 2 /* Object.is(value1, value2) 用來比較兩個值是否嚴格相等,與(===)基本類似。 */ console.log(Object.is("q","q")); // true console.log(Object.is(1,1)); // true console.log(Object.is("1",1)); // false console.log("1"==1); // true console.log("1"===1); // false 類型也要判斷 console.log(Object.is([1],[1])); // false console.log(Object.is({q:1},{q:1})); // false </script>