ES6 對象定義簡寫及常用的擴展方法


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>

 

 

 

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM