Function.prototype.apply()与Function.prototype.call()小结
老是忘掉这两个东东的用下,写下来做个记录吧。
他们作用是一模一样的,只是传入的参数不一样
apply
apply接受两个参数,第一个制定了函数体内this对象的指向,第二个参数为一个带下标的集合(可遍历对象),apply方法把这个集合中的元素作为参数传递给被调用的函数:
var func = function(a, c, c){
alert([a,b,c]); //[1,2,3]
}
func.apply(null, [1,2,3]);
call
call传入的参数不固定,和apply相同的是,第一个参数也是代表函数体内的this指向,第二个参数开始往后,每个参数被依次传入函数:
var func = function(a, b, c){
alert([a,b,c]); //[1,2,3]
}
func.call(null, 1,2,3);
call是aplly的一颗语法糖。如果第一个参数为null,函数体内的this指向宿主对象,在浏览器中是window。
call和apply的用途
1.改变this指向
上面的例子就是啦
2.Function.prototype.bind
模拟Function.prototype.bind
Function.prototype.bind = function(context){
var self = this;
return function(){
return self.apply(context, arguments);
}
};
var obj = {
name: 'cxs'
};
var func = function(){
alert(this.name); //cxs
}.bind(obj);
fun();
- js中apply()和call()的区别与用法实例分析
- 有关JavaScript中call()和apply() 的一些理解
- 深入理解关于javascript中apply()和call()方法的区别
- 浅谈javascript的call()、apply()、bind()的用法
- 在JavaScript中call()与apply()区别
- 跟我学习javascript的call(),apply(),bind()与回调
- 浅谈javascript中call()、apply()、bind()的用法
- JavaScript中的apply()方法和call()方法使用介绍
- JS面向对象、prototype、call()、apply()
- js中call()和apply()改变指针问题的讲解
相关文章
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
这篇文章主要介绍了深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解,本文讲解了JavaScript接口、ISP与JavaScript、堕落的实现、静态耦合、语义耦合、可扩展性等内容,需要的朋友可以参考下2015-03-03
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
很多面试题是我自己面试BAT亲身经历碰到的。整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习js更是大有裨益2014-10-10


最新评论