Function.prototype.apply()与Function.prototype.call()小结

前端之家收集整理的这篇文章主要介绍了Function.prototype.apply()与Function.prototype.call()小结前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

老是忘掉这两个东东的用下,写下来做个记录吧。 他们作用是一模一样的,只是传入的参数不一样

apply

apply接受两个参数,第一个制定了函数体内this对象的指向,第二个参数为一个带下标的集合(可遍历对象),apply方法把这个集合中的元素作为参数传递给被调用函数

call

call传入的参数不固定,和apply相同的是,第一个参数也是代表函数体内的this指向,第二个参数开始往后,每个参数被依次传入函数

call是aplly的一颗语法糖。如果第一个参数为null,函数体内的this指向宿主对象,在浏览器中是window。

call和apply的用途

1.改变this指向

上面的例子就是啦

2.Function.prototype.bind

模拟Function.prototype.bind

var obj = {
name: 'cxs'
};

var func = function(){
alert(this.name); //cxs
}.bind(obj);

fun();

原文链接:https://www.f2er.com/js/49131.html

猜你在找的JavaScript相关文章