javascript中apply、call和bind的区别
来源:互联网 发布:中宏产业数据库 编辑:程序博客网 时间:2024/06/05 04:00
相同点
- 都是改变函数this对象的指向的.
- 第一个参数都是this要指向的对象.
- 都可以利用后续参数传参.
区别
案例一:
(区分call\apply与bind的区别)
var ww = { name:"旺旺", gender:"男", age:24, say:function(){ alert(this.name+","+this.gender+",今年"+this.age); }}var yy = { name:"鱼鱼", gnder:"女", age:18}ww.say();
结果显示为:旺旺,男,今年24
?如何让ww的say方法显示yy的数据,如下:
- call方法
ww.say.call(yy);
- apply方法
ww.say.apply(yy);
- bind方法
ww.say.apply(yy)();
所以call和apply都是对函数直接调用,而bind方法返回的仍然是一个函数,所以还要用()来进行调用才可以.
案例二:
(区分call与apply的区别)
var ww = { name:"旺旺", gender:"男", age:24, say:function(school,grade){ alert(this.name+","+this.gender+",今年"+this.age+",在"+school+"上"+grade); }}var yy = { name:"鱼鱼", gnder:"女", age:18}ww.say();
- call
ww.say.call(yy,"实验中学","六年级");
- apply
ww.say.call(yy,["实验中学","六年级"]);
- bind
ww.say.call(yy,"实验中学","六年级")();
区别在于call后面的参数与say方法中是一一对应的,而apply的第二个参数是一个数组,数组中的元素与say方法中一一对应的,这就是两者最大区别.
原文讲解点这里
0 0
- Javascript中call(),apply(),bind()的区别
- Javascript中apply、call、bind的区别
- javascript中apply、call和bind的区别
- JavaScript中apply、call和bind的区别
- javascript中apply、call和bind的区别
- javascript中apply、call和bind的区别
- javascript中apply、call和bind的区别
- javascript中apply、call和bind的区别
- javascript中apply、call和bind的区别
- JavaScript中apply()、call()和bind()的相似与区别
- javascript中apply、call和bind的区别
- javascript中call、apply、bind区别
- javascript中call()、apply()、bind()方法的区别
- javascript中call、apply、bind方法的区别
- JavaScript之call,apply,bind方法的区别和共同点
- javascript -- apply/call/bind的区别
- JavaScript中call()、apply()和 bind()方法
- JavaScript 中apply()、call()和bind()方法的使用
- Git详解之九:Git内部原理
- 大整数乘法以及空间性能优化
- 信息隐藏课程之简单的LSB最低位隐写
- 二维数组中的查找(牛课网)
- linux内核学习:内核链表
- javascript中apply、call和bind的区别
- LoadLibrary无法加载DLL解决思路
- 斐波那契数列的递归实现和非递归实现
- 108. Convert Sorted Array to Binary Search Tree
- 链表的操作
- Android 修改用户图像笔记
- 重载_,“+, -, --, ++”运算符
- 模式识别四--最大似然估计与贝叶斯估计方法
- 关于3D-HEVC中的SDC编码方式