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

資訊專欄INFORMATION COLUMN

js 中的class

fai1017 / 1862人閱讀

摘要:重點(diǎn)在于構(gòu)造函數(shù),使用的是構(gòu)造函數(shù)來模擬類。使用創(chuàng)建子類由于是在類中定義,關(guān)鍵字可以省去創(chuàng)建父類類不可繼承沒有構(gòu)造函數(shù)的對(duì)象如果一個(gè)對(duì)象沒有構(gòu)造函數(shù),將不能進(jìn)行繼承。

js 的class
由于存在轉(zhuǎn)換器這種神器,所以代碼能直接轉(zhuǎn)換為es5,用es6的語法寫。

一些解釋

js的class僅僅為一個(gè)語法糖,是在原先構(gòu)造函數(shù)的基礎(chǔ)上出現(xiàn)的class,僅僅如此。所以使用構(gòu)造函數(shù)構(gòu)造類,或者使用class語法糖構(gòu)造類都是相同的。具體還是使用prototype和this來進(jìn)行模擬類。

重點(diǎn)在于構(gòu)造函數(shù),使用的是構(gòu)造函數(shù)來模擬類。
類聲明

需要聲明一個(gè)類,需要使用class

class Rectangle {
    constructor(height, width) {
        this.height = height;
        this.width = width;
    }
}
和函數(shù)聲明的最大的區(qū)別在于,類聲明,不會(huì)出現(xiàn)聲明提前,函數(shù)聲明會(huì)出現(xiàn)聲明提前,這是兩者最大的區(qū)別。

在上方中,聲明類以后,新建一個(gè)對(duì)象。

let rectAngle = new Rectangle

該對(duì)象具有constructor方法。

匿名類

和匿名函數(shù)類似,類依舊可以進(jìn)行匿名聲明

let Rectangle = class {
    constructor(height, width) {
        this.height = height;
        this.width = width;
    }
}
在類表達(dá)式中,同樣會(huì)出現(xiàn)類聲明提升的問題。
constructor

為一個(gè)構(gòu)造函數(shù),用于初始化class并創(chuàng)建一個(gè)對(duì)象

即為原先學(xué)習(xí)的構(gòu)造函數(shù),函數(shù)為對(duì)象,對(duì)象為函數(shù)。
class Rectangle {
    // 構(gòu)造函數(shù)
    constructor(height, width) {
        this.height = height;
        this.width = width;
    };
    // get 方法即調(diào)用將會(huì)返回的值
    get area() {
        return this.calcArea();
    };
    // 定義calcArea函數(shù)
    calcArea() {
        return this.height * this.width;
    }
}

上方定義了一個(gè)類如果需要使用

const square = new Rectangle();
console.log(square.area);

即可完成對(duì)類的使用。

static

為一個(gè)靜態(tài)方法,該靜態(tài)new出的來的對(duì)象不能進(jìn)行使用。

常常用于工具函數(shù)的書寫
class Point {
    constructor(x, y){
        this.x = x;
        this.y = y;
    };

    static distance(a, b){
        const dx = a.x - b.x;
        const dy = a.y - b.y;
        return Math.hypot(dx, dy);    // 畢達(dá)哥拉斯定理
    }
}
// 使用
const p1 = new Point(5,5);
const p2 = new Point(10,10);
console.log(Point.distance(p1,p2));
關(guān)于嚴(yán)格模式

由于js存在嚴(yán)格模式,并且上面的內(nèi)容在嚴(yán)格模式下執(zhí)行,如果該對(duì)象沒有this的值,將不會(huì)返回其本身。

傳統(tǒng)的使用prototype將會(huì)返回其本身,因?yàn)閭鹘y(tǒng)的不在嚴(yán)格模式下執(zhí)行。
extends

使用extends創(chuàng)建子類

class Animal {
    constructor(name) {
        this.name = name;
    }

    speak() {    // 由于是在類中定義,function關(guān)鍵字可以省去
        console.log(this.name);
    }
}
// 創(chuàng)建DOg父類
class Dog extends Animal {
    speak() {
        console.log(this.name);
    }
}

let d = new Dog();
d.name = "ming"
d.speak();
類不可繼承沒有構(gòu)造函數(shù)的對(duì)象

如果一個(gè)對(duì)象沒有構(gòu)造函數(shù),將不能進(jìn)行繼承。
請(qǐng)使用

Object.create()

進(jìn)行創(chuàng)建給予對(duì)象的新對(duì)象

const a = {

};

const b = Object.create(a);    // 創(chuàng)建基于原型a的對(duì)象
super

使用super調(diào)用超類

class Cat {
    constructor(name) {
        this.name = name;
    }

    speak() {
        console.log();
    };
}  

class Lion extends Cat {
    speak() {
        super.speak();
    }
}

即使用super調(diào)用超類

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

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

相關(guān)文章

  • CSS Modules詳解及React中實(shí)踐

    摘要:上例中打印的結(jié)果是對(duì)中的名都做了處理,使用對(duì)象來保存原和混淆后的對(duì)應(yīng)關(guān)系。結(jié)合實(shí)踐在處直接使用中名即可。如因?yàn)橹粫?huì)轉(zhuǎn)變類選擇器,所以這里的屬性選擇器不需要添加。 showImg(http://gtms01.alicdn.com/tps/i1/TB15w0HLpXXXXbdaXXXjhvsIVXX-600-364.png); CSS 是前端領(lǐng)域中進(jìn)化最慢的一塊。由于 ES2015/201...

    wemall 評(píng)論0 收藏0
  • React入門0x007: 生命周期概念

    摘要:概述上一章只是稍微了解了一下和相關(guān)的簡(jiǎn)單用法,這一章需要講一下組件的生命周期。生命周期的概念這玩意似乎很高大上,其實(shí)就是一個(gè)假概念罷了,直接來實(shí)現(xiàn)一個(gè)類似的吧。 0x000 概述 上一章只是稍微了解了一下state和setState相關(guān)的簡(jiǎn)單用法,這一章需要講一下組件的生命周期。 0x001 生命周期的概念 這玩意似乎很高大上,其實(shí)就是一個(gè)假概念罷了,直接來實(shí)現(xiàn)一個(gè)類似的吧。大凡事物從...

    Blackjun 評(píng)論0 收藏0
  • CSS中的class與id區(qū)別及用法

    摘要:與基本屬性及用法在程序中稱類,同時(shí)在中也書面語也叫類。在樣式中以小寫的點(diǎn)及來命名如屬性屬性值而在頁面里則以來選擇調(diào)用命名好的又叫選擇器。也就是說只是頁面元素的標(biāo)識(shí),供其他元素腳本等引用。? ? 我們平常在用DIV CSS制作Xhtml網(wǎng)頁頁面時(shí),常會(huì)用到class 和id來選擇調(diào)用CSS樣式屬性。 CLASS與ID基本屬性及用法: Class 在程序中稱類,同時(shí)在CSS中也書面語也叫類。 ...

    Carl 評(píng)論0 收藏0
  • JS中的className操作

    摘要:檢查元素是否已經(jīng)存在某下面的正則表達(dá)式用來檢查元素是否已經(jīng)存在某個(gè)使用操作使用操作現(xiàn)代瀏覽器都支持使用方法來操作元素的,但是中不支持該方法,即使使用了 添加className (1)修改元素的所有的 class 用新的 class 替換掉原有的所有 class,可以設(shè)置 className 屬性: document.getElementById(MyElement).className...

    劉厚水 評(píng)論0 收藏0
  • ES6 class繼承與super關(guān)鍵詞深入探索

    摘要:請(qǐng)看對(duì)應(yīng)版本干了什么可知,相當(dāng)于以前在構(gòu)造函數(shù)里的行為。這種寫法會(huì)與上文中寫法有何區(qū)別我們?cè)诃h(huán)境下運(yùn)行一下,看看這兩種構(gòu)造函數(shù)的有何區(qū)別打印結(jié)果打印結(jié)果結(jié)合上文中關(guān)于原型的論述,仔細(xì)品味這兩者的差別,最好手動(dòng)嘗試一下。 ES6 class 在ES6版本之前,JavaScript語言并沒有傳統(tǒng)面向?qū)ο笳Z言的class寫法,ES6發(fā)布之后,Babel迅速跟進(jìn),廣大開發(fā)者也很快喜歡上ES6帶...

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

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

0條評(píng)論

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