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()改变指针问题的讲解
相关文章
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
各个主流浏览器德鼠标点击事件,方便使用时查询,整理还算是很详细吧,感兴趣的你可以参考下啊,希望本文对你有所帮助2013-01-01getElementById在任意一款浏览器中都可以用吗的疑问回复
getElementById在任意一款浏览器中都可以用吗的疑问回复...2007-05-05
最新评论