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í)行]
基于不擴(kuò)展原生對象的原則,弄了這個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í)行]
基于不擴(kuò)展原生對象的原則,弄了這個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)文章
一文搞懂JavaScript中bind,apply,call的實現(xiàn)
bind、call和apply都是Function原型鏈上面的方法,因此不管是使用function聲明的函數(shù),還是箭頭函數(shù)都可以直接調(diào)用。本文就帶你看看如何實現(xiàn)bind、call和apply2022-06-06
使用typescript+webpack構(gòu)建一個js庫的示例詳解
這篇文章主要介紹了typescript+webpack構(gòu)建一個js庫,本文主要記錄使用typescript配合webpack打包一個javascript library的配置過程,需要的朋友可以參考下2022-07-07
實現(xiàn)web打印的各種方法介紹及實現(xiàn)代碼
web的打印方法具我自己懂得知道的有:JQuery插件Jqprint實現(xiàn);JQery打印插件PrintArea實現(xiàn)網(wǎng)頁打印;CSS控制網(wǎng)頁打印樣式,本文詳細(xì)介紹實現(xiàn)步驟,感興趣的朋友可以了解下2013-01-01
JS 頁面內(nèi)容搜索,類似于 Ctrl+F功能的實現(xiàn)代碼
JS 頁面內(nèi)容搜索,類似于 Ctrl+F功能的實現(xiàn)代碼...2007-08-08
微信小程序開發(fā)之好友列表字母列表跳轉(zhuǎn)對應(yīng)位置
這篇文章主要介紹了微信小程序開發(fā)之好友列表字母列表跳轉(zhuǎn)對應(yīng)位置的相關(guān)資料,希望通過本文能幫助到大家讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-09-09

