成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

[譯]箭頭函數(shù) vs .bind()

sewerganger / 3666人閱讀

摘要:在我們實(shí)際使用中經(jīng)常用的箭頭函數(shù)來(lái)代替提取對(duì)象的方法如果將一個(gè)對(duì)象的方法作為回調(diào)函數(shù)傳入你需要定義一個(gè)確定的否則它將作為一個(gè)函數(shù)來(lái)執(zhí)行值可能是也可能是全局對(duì)象例如另一種解決方案就是使用箭頭函數(shù)譯者注原文評(píng)論中也提到了的綁定運(yùn)算符如下作為參數(shù)

在我們實(shí)際使用中,經(jīng)常用ES6的箭頭函數(shù)來(lái)代替Function.prototype.bind().

1.提取對(duì)象的方法

如果將一個(gè)對(duì)象的方法作為回調(diào)函數(shù)傳入,你需要定義一個(gè)確定的this,否則它將作為一個(gè)函數(shù)來(lái)執(zhí)行(this值可能是undefined, 也可能是全局對(duì)象).例如:

    obj.on("anEvent", console.log.bind(console))

另一種解決方案就是使用箭頭函數(shù):

    obj.on("anEvent", x => console.log(x))

譯者注: 原文評(píng)論中也提到了ES7的綁定運(yùn)算符, 如下:

    obj.on("anEvent", ::console.log)
2.this作為參數(shù)

下面的代碼展示了一個(gè)小技巧:對(duì)于一些方法,你可能不需要用bind()來(lái)為回調(diào)函數(shù)綁定this,這類(lèi)方法允許你在額外的參數(shù)中定義this的值..filter()就是這樣一類(lèi)方法:

    const as = new Set([1, 2, 3]);
    const bs = new Set([3, 2, 4]);
    const intersection = [...as].filter(bs.has, bs);
        // [2, 3]

如果說(shuō)你使用了箭頭函數(shù),代碼會(huì)更加清晰易讀:

    const as = new Set([1, 2, 3]);
    const bs = new Set([3, 2, 4]);
    const intersection = [...as].filter(a => bs.has(a));
        // [2, 3]
3.部分賦值

bind()允許你設(shè)定一個(gè)函數(shù)部分參數(shù)的值,你可以藉由一個(gè)已有的函數(shù),為它設(shè)定部分參數(shù)的值,然后創(chuàng)建一個(gè)新的函數(shù):

    function add(x, y) {
        return x + y;
    }
    const plus1 = add.bind(undefined, 1);

再一次,我找到了使用箭頭函數(shù)簡(jiǎn)化它的方法:

    const plus1 = y => add(1, y);
4.拓展閱讀

Currying versus partial application (with JavaScript code)

Uncurrying this in JavaScript

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

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

相關(guān)文章

  • [] React 組件中綁定回調(diào)

    摘要:好的方案在構(gòu)造函數(shù)中仍然使用,現(xiàn)在我們只要繞過(guò)每次渲染都要生成新的函數(shù)的問(wèn)題就可以了。我們可以通過(guò)只在構(gòu)造函數(shù)中綁定回調(diào)的上下問(wèn)來(lái)解決這個(gè)問(wèn)題,因?yàn)闃?gòu)造函數(shù)只會(huì)調(diào)用一次,而不是每次渲染都調(diào)用。 原文:Binding callbacks in React components 在組件中給事件綁定處理函數(shù)是很常見(jiàn)的,比如說(shuō)每當(dāng)用戶(hù)點(diǎn)擊一個(gè)button的時(shí)候使用console.log打印一些...

    Lin_R 評(píng)論0 收藏0
  • 】this 是什么?JavaScript 對(duì)象的內(nèi)部工作原理

    摘要:關(guān)鍵字會(huì)實(shí)例化一個(gè)新的對(duì)象實(shí)例,并在執(zhí)行構(gòu)造函數(shù)時(shí)將指向該實(shí)例。原文鏈接譯是什么對(duì)象的內(nèi)部工作原理 原文鏈接:What is this? The Inner Workings of JavaScript Objects (需要梯子) 原文作者:Eric Elliott 譯文永久鏈接:【譯】什么是 this?JavaScript 對(duì)象的內(nèi)部工作原理 譯者:士心 翻譯目的:函數(shù)動(dòng)...

    Hwg 評(píng)論0 收藏0
  • 深入理解JavaScript

    摘要:深入之繼承的多種方式和優(yōu)缺點(diǎn)深入系列第十五篇,講解各種繼承方式和優(yōu)缺點(diǎn)。對(duì)于解釋型語(yǔ)言例如來(lái)說(shuō),通過(guò)詞法分析語(yǔ)法分析語(yǔ)法樹(shù),就可以開(kāi)始解釋執(zhí)行了。 JavaScript深入之繼承的多種方式和優(yōu)缺點(diǎn) JavaScript深入系列第十五篇,講解JavaScript各種繼承方式和優(yōu)缺點(diǎn)。 寫(xiě)在前面 本文講解JavaScript各種繼承方式和優(yōu)缺點(diǎn)。 但是注意: 這篇文章更像是筆記,哎,再讓我...

    myeveryheart 評(píng)論0 收藏0
  • []淺顯易懂的 this 取值規(guī)則

    摘要:遵循以下規(guī)則,按優(yōu)先級(jí)排列。換句話(huà)說(shuō),當(dāng)處于被調(diào)用函數(shù)的左邊,則就是左邊的對(duì)象。試一下通過(guò)兩種不同的方式調(diào)用函數(shù)時(shí)的值。找到應(yīng)用的規(guī)則很顯然應(yīng)用的是規(guī)則使用符號(hào)。在使用工具庫(kù)時(shí)發(fā)現(xiàn)取值不符合上述規(guī)則時(shí),請(qǐng)查看庫(kù)文檔。 翻譯自文章The Simple Rules to ‘this’ in Javascript。 確定什么是 this 并非難事??偟膩?lái)說(shuō),通過(guò)查找函數(shù)被調(diào)用時(shí)的位置(和方法...

    X_AirDu 評(píng)論0 收藏0
  • js

    摘要:所以我們又可以得出一個(gè)結(jié)論原型的屬性指向構(gòu)造函數(shù),構(gòu)造函數(shù)又通過(guò)屬性指回原型,但是并不是所有函數(shù)都具有這個(gè)屬性,就沒(méi)有這個(gè)屬性。 1.原始類(lèi)型 boolean number string null undefined symbol原始類(lèi)型儲(chǔ)存的都是值,是沒(méi)有函數(shù)可以調(diào)用的,undefined.toString() 顯示報(bào)錯(cuò),但是1.toString() // 1 ; 是因?yàn)?被強(qiáng)制轉(zhuǎn)...

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

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

0條評(píng)論

閱讀需要支付1元查看
<