实现简易版js bind
2017-04-18 13:14
176 查看
bind()方法会创建一个新函数。当这个新函数被调用时,bind()的第一个参数将作为它运行时的 this, 之后的一序列参数将会在传递的实参前传入作为它的参数。 bind() 函数会创建一个新函数(称为绑定函数),新函数与被调函数(绑定函数的目标函数)具有相同的函数体(在 ECMAScript 5 规范中内置的call属性)。当目标函数被调用时 this 值绑定到 bind() 的第一个参数,该参数不能被重写。绑定函数被调用时,bind() 也接受预设的参数提供给原函数。一个绑定函数也能使用new操作符创建对象:这种行为就像把原函数当成构造器。提供的 this 值被忽略,同时调用时的参数被提供给模拟函数。
Function.prototype.bound = function(){ arguments = Array.prototype.slice.call(arguments); var BoundThis = arguments[0]; var BoundArg = arguments.slice(1); var fn =this; return function(){ fn.apply(BoundThis,BoundArg.concat(Array.prototype.slice.call(arguments))); } } var thisObj = {name:"heh555eh"}; function a() { console.log(this.name); console.dir(arguments); } var b = a.bound(thisObj,1); console.dir(b); b(3,4);
相关文章推荐
- JS树简易实现
- 【转载】Node.js + WebSocket 实现的简易聊天室
- js实现简易的单数字随机抽奖(0-9)
- JS+CSS实现简易实用的滑动门菜单效果
- JS+CSS实现简易实用的滑动门菜单效果
- JS实现简易网页右键菜单
- js实现事件模型bind与trigger
- JS 实现简易老虎机
- JS 实现简易***
- JS+CSS实现简易的滑动门效果代码
- [lua]实现一个js.bind玩玩
- 用js枚举实现简易菜单效果
- 用js枚举实现简易菜单效果
- js实现简易的单数字随机抽奖(0-9)
- JS实现简易图片轮播效果的方法
- Node.js + WebSocket 实现的简易聊天室
- avalon.js实现一个简易日历
- Node.js实现的简易网页抓取功能示例
- js实现黑色简易的滑动门网页tab选项卡效果
- jquery textSearch实现页面搜索 注意!!!!调用这个插件后,js事件绑定如,on、bind、live delegate全部失效,折腾了我一整天!!!