摘要:該回調(diào)函數(shù)的返回值為累積結(jié)果,并且此返回值在下一次調(diào)用該回調(diào)函數(shù)時(shí)作為參數(shù)提供。中的參數(shù)作為的初始值,執(zhí)行方法,并將執(zhí)行結(jié)果作為回調(diào)函數(shù)的第一個(gè)參數(shù)。
ES6 Proxy 鏈?zhǔn)讲僮?/b>
最近在看阮一峰老師的ES6,對于代理的鏈?zhǔn)讲僮鳎@里記錄一下我的理解
一言不合先貼代碼!
首先. 利用閉包執(zhí)行pipe(3)返回一個(gè)新的proxy對象。緊接著調(diào)用pipe(3).double,根據(jù)proxy攔截規(guī)則的定義:
get(target, propKey, receiver)
攔截對象屬性的讀取,比如proxy.foo和proxy["foo"]。
會調(diào)用返回的這個(gè)新的proxy對象的get方法,其中參數(shù)target是pipe(3),fnName是double,如果fnName全等于get,執(zhí)行reduce方法,否則將該方法放入到funcStack數(shù)組中,并返回又一個(gè)新的Proxy對象,以便繼續(xù)鏈?zhǔn)秸{(diào)用下去。
其次. 最后fnName全等于get,執(zhí)行reduce方法
reduce 方法 (Array) (JavaScript)
對數(shù)組中的所有元素調(diào)用指定的回調(diào)函數(shù)。該回調(diào)函數(shù)的返回值為累積結(jié)果,并且此返回值在下一次調(diào)用該回調(diào)函數(shù)時(shí)作為參數(shù)提供。
pipe(3)中的參數(shù)作為reduce的初始值,執(zhí)行double方法,并將執(zhí)行結(jié)果作為回調(diào)函數(shù)的第一個(gè)參數(shù)。
最后. 瀏覽器的全局對象是window,node的全局對象是global,阮老師的這個(gè)例子要放到頁面上運(yùn)行,直接在node中運(yùn)行會報(bào)錯(cuò)。
參考鏈接:
Proxy
reduce 方法 (Array) (JavaScript)
Node.js的全局對象和全局變量
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/84103.html
摘要:在中構(gòu)造器的典型特點(diǎn)就是首字母大寫,我們通過原對象代理列表格式去創(chuàng)建對象創(chuàng)建的這個(gè)對象我們稱之為代理對象。就是原對象是當(dāng)前的屬性名是代理對象。理解為明星的經(jīng)理人消極怠工原封不動(dòng)地轉(zhuǎn)告外界的信息給明星本身。但是要注意與是兩個(gè)不同的對象。 ES6之Proxy proxy的中文有代理的意思。在其他的程序設(shè)計(jì)語言中這個(gè)單詞也具有類似的含義。 它是什么 Proxy是一個(gè)構(gòu)造器。在js中構(gòu)造器的典...
摘要:由于是以空函數(shù)為代理對象,我們可以將執(zhí)行它,觸發(fā)。中會遍歷數(shù)組依次取值,如果發(fā)現(xiàn)無法繼續(xù)取值則,跳出循環(huán)。 本文來自我的博客,歡迎大家去GitHub上star我的博客 我們在取值特別是鏈?zhǔn)饺≈档臅r(shí)候,常常會遇到Cannot read property xx of undefined的錯(cuò)誤,如何避免這種情況的發(fā)生呢?這里有幾種方法以供參考 使用成熟的庫方法 這是最簡單的一種手段:只用引入...
摘要:執(zhí)行函數(shù)會返回一個(gè)遍歷器對象,每一次函數(shù)里面的都相當(dāng)一次遍歷器對象的方法,并且可以通過方法傳入自定義的來改變函數(shù)的行為。函數(shù)可以通過配合函數(shù)更輕松更優(yōu)雅的實(shí)現(xiàn)異步編程和控制流管理。它和構(gòu)造函數(shù)的不同點(diǎn)類的內(nèi)部定義的所有方法,都是不可枚舉的。 let const的命令 在ES6之前,聲明變量只能用var,var方式聲明變量其實(shí)是很不合理的,準(zhǔn)確的說,是因?yàn)镋S5里面沒有塊級作用域是很不合...
摘要:但它操作的便利性無出其右。我用寫了一個(gè)基于簡化版的,僅做個(gè)學(xué)習(xí)記錄。包含基礎(chǔ)操作,支持鏈?zhǔn)讲僮鳎瑑H供日常使用。功能基于基本選擇器構(gòu)造,包括基于原生構(gòu)造,將原生對象轉(zhuǎn)化為對象。為支持批量操作,構(gòu)造器應(yīng)包含復(fù)數(shù)的。 原文地址:Bougie的博客showImg(https://segmentfault.com/img/bV71uK?w=500&h=260);jQuery作為曾經(jīng)Web前端的必...
摘要:但它操作的便利性無出其右。我用寫了一個(gè)基于簡化版的,僅做個(gè)學(xué)習(xí)記錄。包含基礎(chǔ)操作,支持鏈?zhǔn)讲僮鳎瑑H供日常使用。功能基于基本選擇器構(gòu)造,包括基于原生構(gòu)造,將原生對象轉(zhuǎn)化為對象。為支持批量操作,構(gòu)造器應(yīng)包含復(fù)數(shù)的。 原文地址:Bougie的博客showImg(https://segmentfault.com/img/bV71uK?w=500&h=260);jQuery作為曾經(jīng)Web前端的必...
閱讀 2735·2021-11-22 13:54
閱讀 1071·2021-10-14 09:48
閱讀 2298·2021-09-08 09:35
閱讀 1561·2019-08-30 15:53
閱讀 1174·2019-08-30 13:14
閱讀 612·2019-08-30 13:09
閱讀 2529·2019-08-30 10:57
閱讀 3342·2019-08-29 13:18