// JavaScript Document//在書上看到函數(shù)科里化,感覺看的一頭霧水,求幫忙//復(fù)制到DW上會(huì)比較好看function curry (fn,scope){var scope = scope||window;//變量scope是什么作用,作用域嗎?var args =[];//設(shè)定數(shù)組 args(實(shí)參)for(var i =2,len=arguments.length; i<len; ++i){args.push(arguments[i])};//是否是將接受的實(shí)參arguments歷遍,壓入數(shù)組args中?那么為什么要從i=2開始?return function(){var args2 = [];//設(shè)定數(shù)組args2for (var i = 0 ;i<arguments.length;i++){args2.push(argument[i]);}//實(shí)參argument歷遍,壓入數(shù)組args中,為什么這里又是從i=0開始和上面不同?var argstotal = args.concat(args2);//將所有實(shí)參壓入到一個(gè)argstotal數(shù)組里return fn.apply(scope,argstotal);//看不懂。。最后返回得到的是什么。。函數(shù)功能是什么?};}//如果能幫忙放在一個(gè)具體環(huán)境下解說就更好了,,謝謝~~
2 回答

狐的傳說
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
你主要沒有調(diào)用過,調(diào)用一次就明白了,假設(shè)一個(gè)方法需要多個(gè)參數(shù),但是參數(shù)不全,那就返回一個(gè)方法,在這個(gè)方法里面在傳遞剩余參數(shù)。假設(shè)fn是這樣的function(a,b){
alert(a+b);
}
一開始這么調(diào)用 var _t=curry(fn,this,"c"),這里返回的就是一個(gè)方法,
之后這么調(diào)用 _t('d'),這樣就相當(dāng)于當(dāng)用fn("c","d"),
- 2 回答
- 0 關(guān)注
- 871 瀏覽
添加回答
舉報(bào)
0/150
提交
取消