Javascript中bind()方法的使用与实现
来源:互联网 发布:qt淘宝互刷平台2017 编辑:程序博客网 时间:2024/05/21 05:43
在讨论bind()
方法之前我们先来看一道题目:
var altwrite = document.write;altwrite("hello");//1.以上代码有什么问题//2.正确操作是怎样的//3.bind()方法怎么实现
对于上面这道题目,答案并不是太难,主要考点就是this指向的问题,altwrite()函数改变this的指向global或window对象,导致执行时提示非法调用异常,正确的方案就是使用bind()
方法:
altwrite.bind(document)("hello")
当然也可以使用call()
方法:
altwrite.call(document, "hello")
本文的重点在于讨论第三个问题bind()
方法的实现,在开始讨论bind()
的实现之前,我们先来看看bind()
方法的使用:
绑定函数
bind()
最简单的用法是创建一个函数,使这个函数不论怎么调用都有同样的this值。常见的错误就像上面的例子一样,将方法从对象中拿出来,然后调用,并且希望this指向原来的对象。如果不做特殊处理,一般会丢失原来的对象。使用bind()
方法能够很漂亮的解决这个问题:
this.num = 9; var mymodule = { num: 81, getNum: function() { return this.num; }};module.getNum(); // 81var getNum = module.getNum;getNum(); // 9, 因为在这个例子中,"this"指向全局对象// 创建一个'this'绑定到module的函数var boundGetNum = getNum.bind(module);boundGetNum(); // 81
阅读全文
0 0
- JavaScript-Javascript中bind()方法的使用与实现
- Javascript中bind()方法的使用与实现
- Javascript中bind()方法的使用与实现
- Javascript中bind()方法的使用与实现
- Javascript中bind()方法的使用与实现
- Javascript中bind()方法的使用与实现
- Javascript中bind()方法的使用与实现
- Javascript中bind()方法的使用与实现
- JavaScript中使用bind()方法
- javascript---bind的实现方法
- Javascript中call,apply,bind方法的详解与总结
- JavaScript 中apply()、call()和bind()方法的使用
- javascript中call、apply、bind方法的使用
- JavaScript中 call 与 apply、bind 的使用
- Javascript中bind实现
- javascript 中bind()的使用
- javascript中call apply 与 bind方法详解
- Bind()方法与Eval()方法的区别与使用
- 关于Linux的c编译器和汇编器
- 数学笔记14——微积分第一基本定理
- Http协议
- 4.Spring Cloud:服务消费(Feign)【Dalston版】
- leetcode_307.Range Sum Query
- Javascript中bind()方法的使用与实现
- targetlik
- Java学习心得之线程(二)
- Jmeter的_time函数
- C语言结构体常见使用方法
- vuejs高德地图位置选择组件的开发及使用/vuejs地图开发
- 使用turtlesim小例子
- iOS 内存泄露查找
- 当Xcode大于等于8时,如何使用Appium Desktop 获取iOS APP控件的id进行自动化测试