国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ECMAScript 6入門類學(xué)習(xí)筆記上

asoren / 3497人閱讀

摘要:類基本概念,記錄以便自己后面加深理解了解類是什么是什么不妨寫一個(gè)看看的原型可以看到這三個(gè)屬性都是不可遍歷的并且與類相比就多了一個(gè)原型鏈。和靜態(tài)方法中是一樣的得是哪個(gè)類就返回哪個(gè)類本類不能實(shí)例化報(bào)錯(cuò)正確

類class

基本概念,記錄以便自己后面加深理解

了解類是什么

class是什么?不妨寫一個(gè)看看

class Demo {
    constructor() {
        this.a = 1;
        this.b = this.f;
    }
    f() {
        return this;
    }
}
Demo.prototype; //{
                //  constructor: class Demo
                //  f: ? f()           
                //  __proto__: Object }

Demo的原型可以看到這三個(gè)屬性都是不可遍歷的并且與Demo類相比就多了一個(gè)__proto__原型鏈。我們?cè)賜ew一個(gè)Demo看一下

let o = new Demo();
console.log(Object.getPrototypeOf(o));  //{
                                        //  constructor: class Demo
                                        //  f: ? f()           
                                        //  __proto__: Object }

實(shí)際上Demo類相當(dāng)于Demo實(shí)例的原型

class中的constructor

在我看來(lái)

    constructor() {
        this.a = 1;
        this.b = this.f;
    }

這部分相當(dāng)于es5中構(gòu)造函數(shù)的作用,在new的過(guò)程中對(duì)this進(jìn)行賦值,并返回this也就成了實(shí)例對(duì)象
因此你在constructor中return了一個(gè)對(duì)象且不等于null那么實(shí)例對(duì)象就是return的值,和es5構(gòu)造函數(shù)一樣的效果

class中的方法
    f() {
        return this;
    }

這個(gè)方法最終屬于在實(shí)例對(duì)象的原型鏈上不可遍歷方法,因此也能被實(shí)例對(duì)象使用

新知識(shí)點(diǎn) class的靜態(tài)方法

表示該方法不會(huì)被實(shí)例繼承,而是直接通過(guò)類來(lái)調(diào)用

class Demo {
    constructor() {
        this.a = this;
        this.b = this.f;
    }
    static g() {
        return this;
    }
    static f() {
        return this;
    }
}
let o = new Demo(); 
//console.log(o.b());    //not a function
//console.log(o.g());     //not a function
Demo.g() === Demo;        //true

靜態(tài)方法中的this指向類自己,而this.a = this則指向?qū)嵗龑?duì)象自己

靜態(tài)方法可以被子類繼承

class Foo {
  static classMethod() {
    return "hello";
  }
}

class Bar extends Foo {
}

Bar.classMethod() // "hello"

靜態(tài)方法可以從super對(duì)象上調(diào)用

class Foo {
  static classMethod() {
    return "hello";
  }
}

class Bar extends Foo {
  static classMethod() {
    return super.classMethod() + ", too";
  }
}

Bar.classMethod() // "hello, too"

Class 內(nèi)部只有靜態(tài)方法,沒有靜態(tài)屬性

class表達(dá)式的立即執(zhí)行寫法
var o =  new class {
    constructor(n) {
        this.a = n;
        this.b = this.f;
    }
    g() {
        return n;
    }
    f() {
        return this;
    }

}(1)

o.a;             // 1

class類聲明不存在變量提升

new.target 屬性

是在new后返回一個(gè)對(duì)象,例如es5中構(gòu)造函數(shù)f不是通過(guò)new調(diào)用返回undefined,通過(guò)new調(diào)用返回構(gòu)造函數(shù)自己

function f() {
    return new.target;
}
console.log((new f()) === f);       //true

而class類中,則返回class自身。和靜態(tài)方法中this是一樣的;new得是哪個(gè)類就返回哪個(gè)類

class Shape {
  constructor() {
    if (new.target === Shape) {
      throw new Error("本類不能實(shí)例化");
    }
  }
}

class Rectangle extends Shape {
  constructor(length, width) {
    super();
    // ...
  }
}

var x = new Shape();  // 報(bào)錯(cuò)
var y = new Rectangle(3, 4);  // 正確

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/98669.html

相關(guān)文章

  • ECMAScript 6入門繼承筆記

    類繼承 看類繼承前,先回顧構(gòu)造函數(shù)怎么實(shí)現(xiàn)對(duì)象的繼承的 function F() { this.a = 1; } function Son() { F.call(this); } function inherit(S, F) { S.protot...

    _DangJin 評(píng)論0 收藏0
  • ECMAScript 6入門讀書筆記

    摘要:變量的解構(gòu)賦值更加便利的從匿名對(duì)象或者數(shù)組中,對(duì)變量進(jìn)行賦值數(shù)組的解構(gòu)賦值基本樣式,右邊數(shù)據(jù)類型必須是可迭代的類型。 變量的解構(gòu)賦值 更加便利的從匿名對(duì)象或者數(shù)組中,對(duì)變量進(jìn)行賦值; 數(shù)組的解構(gòu)賦值 基本樣式,右邊數(shù)據(jù)類型必須是可迭代的類型。 let a = 1, b = 2, c = 3; //等價(jià)于 //let [a, b, c] = [1, 2, 3]; 對(duì)...

    wawor4827 評(píng)論0 收藏0
  • JavaScript 學(xué)習(xí)筆記一 (入門篇)

    摘要:學(xué)習(xí)筆記一入門篇最近正在看高級(jí)程序設(shè)計(jì),一直沒來(lái)得及總結(jié)一下,順便對(duì)之前看的編程藝術(shù)進(jìn)行一些簡(jiǎn)單的總結(jié),如有一些不正確的地方還請(qǐng)多指出討論。其他字符可以是字母下劃線美元符號(hào)或者數(shù)字。 JavaScript 學(xué)習(xí)筆記一 (入門篇) 最近正在看《JavaScript高級(jí)程序設(shè)計(jì)》,一直沒來(lái)得及總結(jié)一下,順便對(duì)之前看的《JavaScript DOM編程藝術(shù)》進(jìn)行一些簡(jiǎn)單的總結(jié),如有一些不正...

    lentoo 評(píng)論0 收藏0
  • ES6 Iterator筆記(摘抄至阮一峰的ECMAScript 6入門

    摘要:也就是說(shuō),遍歷器對(duì)象本質(zhì)上,就是一個(gè)指針對(duì)象。執(zhí)行這個(gè)函數(shù),就會(huì)返回一個(gè)遍歷器。一個(gè)對(duì)象如果要有可被循環(huán)調(diào)用的接口,就必須在的屬性上部署遍歷器生成方法原型鏈上的對(duì)象具有該方法也可。后面跟的是一個(gè)可遍歷的結(jié)構(gòu),它會(huì)調(diào)用該結(jié)構(gòu)的遍歷器接口。 ES6 Iterator筆記(摘抄至阮一峰的ECMAScript 6入門) Iterator的遍歷過(guò)程 創(chuàng)建一個(gè)指針對(duì)象,指向當(dāng)前數(shù)據(jù)結(jié)構(gòu)的起始位...

    mayaohua 評(píng)論0 收藏0
  • PHPer書單

    摘要:想提升自己,還得多看書多看書多看書下面是我收集到的一些程序員應(yīng)該看得書單及在線教程,自己也沒有全部看完。共勉吧當(dāng)然,如果你有好的書想分享給大家的或者覺得書單不合理,可以去通過(guò)進(jìn)行提交。講師溫銘,軟件基金會(huì)主席,最佳實(shí)踐作者。 想提升自己,還得多看書!多看書!多看書!下面是我收集到的一些PHP程序員應(yīng)該看得書單及在線教程,自己也沒有全部看完。共勉吧!當(dāng)然,如果你有好的書想分享給大家的或者...

    jimhs 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<