JavaScript-基础04-call&apply&bind
call()方法
call方法可以改变this的指向,call(参数一,参数二, …),
参数一: this的指向
其他参数: 传递的数据
注意: call() 方法可以调用函数
function Father(name, age) {
this.name = name,
this.age = age
}
Father.prototype.say =function(msg) {
console.log(msg);
}
function Son(name, age) {
//此时的this指向Father,并传参
Father.call(this,name, age);
}
apply()方法
apply方法可以改变this的指向,call(参数一,数组),
参数一: this的指向
其他参数: 传递的数据(数组)
注意:apply()方法可以调用函数
bind()方法(不调用函数)
bind方法可以改变this的指向,call(参数一,参数, …),
参数一: this的指向
其他参数: 传递的数据
注意:apply()方法可以调用函数,bind方法返回的是一个修改过后的函数
总结:
call和apply都是改变上下文中的this并立即执行这个函数,bind方法可以让对应的函数想什么时候调就什么时候调用,并且可以将参数在执行的时候添加,这是它们的区别,根据自己的实际情况来选择使用。
内容仅供学习参考,若有错误欢迎大家指正----WUCASE