国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ES6】Class中this指向

這篇具有很好參考價(jià)值的文章主要介紹了【ES6】Class中this指向。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

先上代碼:
正常運(yùn)行的代碼:

class Logger{
    printName(name = 'kexuexiong'){
        this.print(`hello ${name}`);
    }

    print(text){
        console.log(text);
    }
}

const logger = new Logger();
logger.printName("kexueixong xiong");

輸出:
【ES6】Class中this指向,前端,es6,前端
單獨(dú)調(diào)用函數(shù)printName:

class Logger{
    printName(name = 'kexuexiong'){
        this.print(`hello ${name}`);
    }

    print(text){
        console.log(text);
    }
}

const logger = new Logger();

const {printName} = logger;

printName("kexueixong xiong");

輸出:
【ES6】Class中this指向,前端,es6,前端
debugger調(diào)試一下,看看什么情況,調(diào)試代碼:

 
class Logger{
    printName(name = 'kexuexiong'){
        this.print(`hello ${name}`);
    }

    print(text){
        console.log(text);
    }
}

const logger = new Logger();

const {printName} = logger;

debugger;

printName("kexueixong xiong");

調(diào)試界面,this顯示undefined,在單獨(dú)調(diào)用時(shí),this的指向是undefined。在單獨(dú)調(diào)用的場(chǎng)景下,要如何才能解決該問(wèn)題呢?下面給出兩種種比較簡(jiǎn)單的解決方法。
【ES6】Class中this指向,前端,es6,前端

1、在構(gòu)造方法中綁定this,這樣就不會(huì)找不到print方法了
    class Logger {


        constructor() {
            this.printName = this.printName.bind(this);//bind函數(shù)綁定this對(duì)象
        }

        printName(name = 'kexuexiong') {
            debugger;
            this.print(`hello ${name}`);
        }

        print(text) {
            console.log(text);
        }
    }

    const logger = new Logger();

    const { printName } = logger;

    printName("kexueixong xiong");

調(diào)試界面,顯示綁定了this。
【ES6】Class中this指向,前端,es6,前端
輸出:
【ES6】Class中this指向,前端,es6,前端

2、解決方法是使用箭頭函數(shù)

因?yàn)榧^函數(shù)有固話this的作用。

  class Logger {


        constructor() {
            this.printName = this.printName.bind(this);//bind函數(shù)綁定this對(duì)象
        }

		//使用箭頭函數(shù)固化this
        printName =(name = 'kexuexiong') => {
            debugger;
            this.print(`hello ${name}`);
        };

        print(text) {
            console.log(text);
        }
    }

    const logger = new Logger();

    const { printName } = logger;

    printName("kexueixong xiong");

調(diào)試界面:
【ES6】Class中this指向,前端,es6,前端
輸出:
【ES6】Class中this指向,前端,es6,前端文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-705851.html

到了這里,關(guān)于【ES6】Class中this指向的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ES6——class類實(shí)現(xiàn)繼承

    趕快悄悄的努力起來(lái)吧,不苒在這里衷心祝愿各位大佬都能順利通過(guò)面試。 面試專欄分享,感覺(jué)有用的小伙伴可以點(diǎn)個(gè)訂閱,不定時(shí)更新相關(guān)面試題:面試專欄 。 在ES6 中新增了 extends ,用于實(shí)現(xiàn)類的繼承。 MDN中對(duì) extends 的解釋是這么說(shuō)的: **定義:**** exten

    2023年04月10日
    瀏覽(49)
  • es6(五)—— class(類)詳解

    es6(五)—— class(類)詳解

    一:構(gòu)造函數(shù) 在了解class (類)的使用之前,需要先了解一下什么是構(gòu)造函數(shù) 1:定義:通常首字母大寫(xiě),用于和普通函數(shù)區(qū)分(不大寫(xiě)也可以,但是前端為了更好區(qū)分使用大寫(xiě))。 2:區(qū)別:構(gòu)造函數(shù)和普通函數(shù)的區(qū)別就是調(diào)用方式的不同,普通函數(shù)是直接調(diào)用,而構(gòu)造函

    2024年02月03日
    瀏覽(20)
  • this在Es5和Es6的區(qū)別

    在ES5和ES6中,this的指向有所不同。 在ES5中,this的默認(rèn)指向是全局對(duì)象(在瀏覽器環(huán)境中通常是window對(duì)象)。在函數(shù)中,this的指向取決于函數(shù)的調(diào)用方式。例如,在方法調(diào)用中,this指向調(diào)用該方法的對(duì)象;在構(gòu)造函數(shù)中,this指向構(gòu)造出來(lái)的新對(duì)象;在定時(shí)器或事件處理函數(shù)

    2024年01月19日
    瀏覽(27)
  • ES5 構(gòu)造函數(shù)與ES6 Class的區(qū)別

    Class 類中不存在變量提升 class內(nèi)部會(huì)啟用嚴(yán)格模式 class的所有方法都是不可枚舉的 class 必須使用new調(diào)用 class 內(nèi)部無(wú)法重寫(xiě)類名 class 的繼承有兩條繼承鏈 一條是: 子類的__proto__ 指向父類 另一條: 子類prototype屬性的__proto__屬性指向父類的prototype屬性. es6的子類可以通過(guò)__pro

    2024年02月06日
    瀏覽(32)
  • 【ES6】中構(gòu)造函數(shù)的語(yǔ)法糖 —— Class(類)

    【ES6】中構(gòu)造函數(shù)的語(yǔ)法糖 —— Class(類)

    ? ? ? ? 在現(xiàn)代前端開(kāi)發(fā)中,JavaScript的面向?qū)ο缶幊坛蔀榱酥髁鳌S6引入了class,使得開(kāi)發(fā)者可以更方便地使用面向?qū)ο蟮姆绞骄帉?xiě)代碼,更接近傳統(tǒng)語(yǔ)言的寫(xiě)法。ES6的class可以看作是一個(gè)語(yǔ)法糖,它的絕大部分功能ES5都可以做到,新的class寫(xiě)法只是讓對(duì)象原型的寫(xiě)法更

    2024年02月16日
    瀏覽(21)
  • ES6之淺嘗輒止1:class的用法

    class是es6新增的一種語(yǔ)法糖,用于簡(jiǎn)化js中構(gòu)造類的過(guò)程

    2024年02月11日
    瀏覽(20)
  • ts的class類的使用與繼承, es6新增的class類

    ts的class類的使用與繼承, es6新增的class類

    前言: ? ? ? ? ts的class類的使用與繼承, es6新增的class類。 ????????在ES6中為了更好的把js設(shè)計(jì)成面向?qū)ο蟮恼Z(yǔ)言的語(yǔ)法特征,提出了class 類,class的本質(zhì)是函數(shù),類不可重復(fù)聲明,類定義不會(huì)被提升,讓js更像面向?qū)ο缶幊痰恼Z(yǔ)法。 ????????類名建議大寫(xiě),在嚴(yán)格要求

    2024年02月05日
    瀏覽(13)
  • ES6之Promise、Class類與模塊化(Modules)

    ES6之Promise、Class類與模塊化(Modules)

    Promise 是 ES6 引入的一種用于 處理異步操作 的對(duì)象。 它解決了傳統(tǒng)回調(diào)函數(shù)(callback)模式中容易出現(xiàn)的 回調(diào)地獄 和代碼可讀性差的問(wèn)題。 Promise 對(duì)象有三種狀態(tài): Pending (進(jìn)行中): 初始化狀態(tài),表示異步操作還在進(jìn)行中。 Fulfilled (已成功): 表示異步操作執(zhí)行成功,并

    2024年02月10日
    瀏覽(94)
  • ES6中的Class關(guān)鍵字和super()方法,使用詳細(xì)(class類和super()方法)

    簡(jiǎn)介:在ES6中,我們可以使用class來(lái)定義類,并通過(guò) extends 實(shí)現(xiàn)類的繼承,然后在子類中,我們可以使用 super() 來(lái)調(diào)用父類的構(gòu)造函數(shù);今天來(lái)分享下class的使用詳細(xì)。 1、 首先,使用class,定義一個(gè)父類; 2、 然后再定義一個(gè)子類, 通過(guò)ex

    2024年02月12日
    瀏覽(23)
  • 前端-ES6

    let 和 const 為了解決var的作用域的問(wèn)題,而且var 有變量提升,會(huì)出現(xiàn)全局污染的問(wèn)題 let 塊狀作用域,并且不能重復(fù)聲明 const 一般用于聲明常量,一旦被聲明無(wú)法修改,但是const 可以聲明一個(gè)對(duì)象,對(duì)象內(nèi)部的屬性是可以修改的 建議: 在默認(rèn)的情況下用const, 而只有你知道

    2024年02月12日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包