国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

javascript中利用柯里化函數實現bind方法【推薦】

2024-05-06 16:30:35
字體:
來源:轉載
供稿:網友
下面小編就為大家帶來一篇javascript中利用柯里化函數實現bind方法【推薦】。小編覺得挺不錯的,現在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
 

• 柯理化函數思想:一個js預先處理的思想;利用函數執行可以形成一個不銷毀的作用域的原理,把需要預先處理的內容都儲存在這個不銷毀的作用域中,并且返回一個小函數,以后我們執行的都是小函數,在小函數中把之前預先存儲的值進行相關的操作處理即可;

• 柯里化函數主要起到預處理的作用;

• bind方法的作用:把傳遞進來的callback回調方法中的this預先處理為上下文context;

/*** bind方法實現原理1* @param callback [Function] 回調函數* @param context [Object] 上下文* @returns {Function} 改變this指向的函數*/function bind(callback,context) {  var outerArg = Array.prototype.slice.call(arguments,2);// 表示取當前作用域中傳的參數中除了fn,context以外后面的參數;  return function (){    var innerArg = Array.prototype.slice.call(arguments,0);//表示取當前作用域中所有的arguments參數;    callback.apply(context,outerArg.concat(innerArg));  }}
/*** 模仿在原型鏈上的bind實現原理(柯理化函數思想)* @param context [Object] 上下文* @returns {Function} 改變this指向的函數*/Function.prototype.mybind = function mybind (context) {  var _this = this;  var outArg = Array.prototype.slice.call(arguments,1);  // 兼容情況下  if('bind' in Function.prototype) {    return this.bind.apply(this,[context].concat(outArg));  }  // 不兼容情況下  return function () {    var inArg = Array.prototype.slice.call(arguments,0);    inArg.length === 0?inArg[inArg.length]=window.event:null;    var arg = outArg.concat(inArg);    _this.apply(context,arg);  }}

以上這篇javascript中利用柯里化函數實現bind方法【推薦】就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 航空| 玉树县| 嘉禾县| 山阴县| 铜鼓县| 类乌齐县| 卢氏县| 吴旗县| 舟曲县| 海原县| 景宁| 高雄县| 苗栗县| 府谷县| 玉龙| 海盐县| 罗城| 灌阳县| 绵竹市| 建宁县| 鄱阳县| 莱西市| 克东县| 陇川县| 永福县| 福贡县| 洛浦县| 榆树市| 汝南县| 府谷县| 简阳市| 岐山县| 榆林市| 成都市| 岳阳县| 石台县| 昂仁县| 新建县| 石屏县| 东乌珠穆沁旗| 晴隆县|