JS bind 函数
来源:互联网 发布:5230软件下载 编辑:程序博客网 时间:2024/04/30 08:30
bind 函数
bind 函数的作用是改变this的指向。(这里说的bind 不是jq的bind 函数。)
举个栗子:
var name = "outerName";let obj = { name: "innerName", getName: function () { return function () { return this.name; } }};obj.getName()(); //"outerName"
(小提示: 这里的全局变量为什么不能用let: let 定义的变量不是全局变量,而调用函数时this指向全局window 。至于为什么可以看这里)
这里有2个解决方案:
1.在getName中定义一个 that 保存this .
getName: function () { let that = this; return function () { return that.name; } }
2.使用apply或者call方法指定函数的作用域:
var name = "outerName";let obj = { name: "innerName", getName: function () { return function () { return this.name; } }};let func = obj.getName();alert(func.apply(obj)) //"innerName"
ES5 提供了新的bind方法可以更简介明朗的实现这种效果:
var name = "outerName";let obj = { name: "innerName", getName: function () { return function () { return this.name; } }};let func = obj.getName();func = func.bind(obj);alert(func()) //"innerName"
对于少数浏览器不支持bind函数的兼容性操作:
Function.prototype.bind=Function.prototype.bind|| function(context){ var self=this; return function() { return self.apply(context,arguments); } }
参考自:http://www.cnblogs.com/GongQi/p/4041460.html
阅读全文
0 0
- js原生函数bind
- js原生函数bind
- JS bind 函数
- 理解prototype.js的bind函数
- 理解prototype.js的bind函数
- JS中的bind方法与函数柯里化
- 对js里bind函数的理解
- JS中bind方法与函数柯里化
- 事件绑定函数---bind-原创js库
- js中bind函数的实现
- js中call、apply、bind函数
- js bind
- bind函数
- bind函数
- bind()函数
- bind函数
- bind函数
- js bind 函数 使用闭包保存执行上下文
- 很多公司都开始转型大前端了,来看看它们是怎么实践的?
- Oracle 高水位(HWM: High Water Mark)
- React Native开发技术周报第十九期-热荐Reading作者曹大大录制的入门到实战视频教程
- java 23种设计模式
- BZOJ 3944: Sum 杜教筛
- JS bind 函数
- 图文讲解jQuery选择器
- 《C++ Primer Plus(第6版)》编程练习代码 Chapter 7
- 解决mysql5.5中文乱码问题!!
- github的使用
- 点击屏幕隐藏键盘
- 将Python脚本打包成可执行文件
- 网页视频播放代码
- JDBC连接MySQl数据库方法