javascript bind綁定函數(shù)代碼
更新時間:2010年01月05日 13:58:02 作者:
bind函數(shù),顧名思義,用于為調(diào)用函數(shù)綁定一個作用域,因為this很容易跟丟它原來所在的作用域,直接指向頂層的window對象。
具體結(jié)論可參見《javascript下動態(tài)this與動態(tài)綁定實例代碼》。本文專注設(shè)計一個無侵入的綁定函數(shù)。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
基于不擴展原生對象的原則,弄了這個bind函數(shù)(dom為作用域),用法與Prototype框架的bind差不多。
dom.bind = function(fn,context){
//第二個參數(shù)如果你喜歡的話,也可以改為thisObject,scope,
//總之,是一個新的作用域?qū)ο?
if (arguments.length < 2 && context===undefined) return fn;
var method = fn,
slice = Array.prototype.slice,
args = slice.call(arguments, 2) ;
return function(){//這里傳入原fn的參數(shù)
var array = slice.call(arguments, 0);
method.apply(context,args.concat(array))
}
用法:第一個參數(shù)為需要綁定作用域的函數(shù),第二個為window或各種對象,其他參數(shù)隨意。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
另一個例子:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
基于不擴展原生對象的原則,弄了這個bind函數(shù)(dom為作用域),用法與Prototype框架的bind差不多。
復(fù)制代碼 代碼如下:
dom.bind = function(fn,context){
//第二個參數(shù)如果你喜歡的話,也可以改為thisObject,scope,
//總之,是一個新的作用域?qū)ο?
if (arguments.length < 2 && context===undefined) return fn;
var method = fn,
slice = Array.prototype.slice,
args = slice.call(arguments, 2) ;
return function(){//這里傳入原fn的參數(shù)
var array = slice.call(arguments, 0);
method.apply(context,args.concat(array))
}
用法:第一個參數(shù)為需要綁定作用域的函數(shù),第二個為window或各種對象,其他參數(shù)隨意。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
另一個例子:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
您可能感興趣的文章:
- javascript中的Function.prototye.bind
- javascript之bind使用介紹
- js apply/call/caller/callee/bind使用方法與區(qū)別分析
- js bind 函數(shù) 使用閉包保存執(zhí)行上下文
- JavaScript中的prototype.bind()方法介紹
- js設(shè)置組合快捷鍵/tabindex功能的方法
- javascript中bind函數(shù)的作用實例介紹
- 淺談javascript中call()、apply()、bind()的用法
- JS中改變this指向的方法(call和apply、bind)
- 深入理解JS中的Function.prototype.bind()方法
相關(guān)文章
JS/HTML5游戲常用算法之碰撞檢測 地圖格子算法實例詳解
這篇文章主要介紹了JS/HTML5游戲常用算法之碰撞檢測 地圖格子算法,結(jié)合實例形式詳細分析了javascript碰撞檢測算法的相關(guān)原理、實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下2018-12-12基于JS實現(xiàn)彈出一個隱藏的div窗口body頁面變成灰色并且不可被編輯
這篇文章主要介紹了基于JS實現(xiàn)彈出一個隱藏的div窗口body頁面變成灰色并且不可被編輯的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-12-12js實現(xiàn)動態(tài)添加、刪除行、onkeyup表格求和示例
動態(tài)添加、刪除行想必大家并不陌生,下面為大家介紹通過js是如何實現(xiàn)的,有此需求的朋友可不要錯過了哈2013-08-08javaScript事件學(xué)習小結(jié)(四)event的公共成員(屬性和方法)
這篇文章主要介紹了javaScript事件學(xué)習小結(jié)(四)event的公共成員(屬性和方法)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06