es6對象功能拓展+解構

es6拓展的對象方法

  • Object .is() 比較兩個參數是否徹底一致,與全等區分(例NAN全等返回false)
  • Object.assign() 將後面參數對象熟悉賦給參數1對象
  • Object.setPrototypeOf(對象,新原型對象) 改變對象原型,同理get...爲獲得原型
  • super 覆蓋對象實例的一個方法、但依然要調用原型上的同名方法,咱們以前知道對象與原型重名會調用自身,看一個實例:
    let describe{
         test() {
             return "is a good boy";
         }
     }
     let person{
         test() {
             return "tianming" + super.name();
             //等價於return "tianming"+describe.test.call(this);
         }
     }
     Object.setPrototypeOf(person,describe);
     console.log(person.test());
    複製代碼

解構

  • 常看法構 解構存在主要是便於數據的提取,對象數組均可以用解構來提取數據
    let person = {
         name: '天明',
         age: '19',
         sex: 'male'
     }
     let { name: myname, age, sex } = person;
     console.log(myname, age, sex);
     let arr = [1, 2, 3];
     let [ a, b, c, d = 4 ] = arr;
     let [ , ,lastnumber ] = arr; 
     console.log(a, b, c, d);    
     console.log(lastnumber);
    複製代碼
    當解構參數多餘實際內容時,解構變量值爲undefined,一樣的像以前參數同樣咱們能夠給他們附上初始化值格式也是同樣的,解構時也能夠修該對象屬性名,案例中name:myname這一步,解構也是能夠嵌套的,多層關係,數組的解構還能夠,空變量只取後面的,如案例中lastnumber。
  • 數組解構賦值以及應用:
    let arr = [a = 1, b = 2, c = 3];
     [ a, b, c ] = arr;
     // 實現變量值交換
     let c = 1,
         d = 2;
     [ a, b ] = [ b, a ];
    複製代碼
    剩餘項也能夠用到解構之中
    // 克隆數組
     let arr = [1, 2, 3];
     let [ ...arr1 ] = arr;
    複製代碼
  • 參數解構 傳遞參數時咱們一樣也能夠採用解構的方式來,解構方式當作參數當沒有傳遞該爲參數時會報錯咱們要在解構時給他們加上一個空對象或空數組才行
    let arr = [1, 2];
     function add(a, [ b, c ] = []){
         return a + b + c; 
     }
     add(1);  // 沒傳遞時參數默認爲解構值undefined
     add(1, arr); 
    複製代碼
相關文章
相關標籤/搜索