亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JS 函數科里化。不明白。具體問題在這?

JS 函數科里化。不明白。具體問題在這?

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

2 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

你主要沒有調用過,調用一次就明白了,假設一個方法需要多個參數,但是參數不全,那就返回一個方法,在這個方法里面在傳遞剩余參數。假設fn是這樣的function(a,b){
alert(a+b);

}
一開始這么調用 var _t=curry(fn,this,"c"),這里返回的就是一個方法,
之后這么調用 _t('d'),這樣就相當于當用fn("c","d"),

查看完整回答
反對 回復 2019-03-15
  • 2 回答
  • 0 關注
  • 843 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號