在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ js有關(guān)驗(yàn)證是否異步執(zhí)行的代碼

js有關(guān)驗(yàn)證是否異步執(zhí)行的代碼

在《你不知道的js(中卷)》中,有一段代碼理解的不是很清晰,望大神解析!
代碼如下:

function asyncify(fn) {
    var orig_fn = fn,
        intv = setTimeout(function() {
            intv = null;
            if (fn) fn();
        },0);
    fn = null;
    return function() {
        //觸發(fā)太快,在定時(shí)器intv觸發(fā)指示異步轉(zhuǎn)換發(fā)生之前?
        if (intv) {
            fn = orig_fn.bind.apply(
                orig_fn,
                //把封裝器的this添加到bind(..)調(diào)用的參數(shù)中
                //以及currying所有傳入?yún)?shù)
                [this].concat([].slice.call(arguments))
            );
        }
        //已經(jīng)是異步
        else {
            //調(diào)用原來(lái)的函數(shù)
            orig_fn.apply(this, arguments);
        }
    };
}

問(wèn)題一:觸發(fā)太快那兒,bind那條語(yǔ)句不是很明白。
問(wèn)題二:這里的currying 怎樣理解?
求大神解答!感激不盡!

回答
編輯回答
艷骨

bind的作用是返回一個(gè)新的函數(shù)并改變函數(shù)里this指向,這里的函數(shù)可以分兩步來(lái)理解
1.bind改變了orig_fn原來(lái)的this指向?yàn)閛rig_fn自己
2.再調(diào)用參數(shù)上再加上this

2017年11月13日 04:11