call方法

call方法的作用:

函数名.call(对象,arg1....argn)

1.将this指向第一个参数

2.将第二个及以后所有的参数,作为实参传递给函数

var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:"Bill",
  lastName: "Gates"
}
person.fullName.call(person1, "Seattle", "USA");

apply方法的使用:
函数名.apply(对象, 数组/伪数组)
  1. var a=Math.max.apply( null, [ 1, 2, 5, 3, 4 ] );
  2.  console.log(a);// 输出:5

 bind方法的使用:

  1. var a=Math.max.bind( null, 1,2,3,4,5 )();
  2.  console.log(a);// 输出:5

 

注意事项

 1.call和apply只是传参方式的区别,apply可以通过数组的方式传参

2.call和apply的第一个参数如果是null和underfined,那么this会指向windows

3.call和apply的第一个参数如果为值类型的数据,那么会将这个值类型的数据,转换成其对应的引用类型的数据,然后再将this指向这个引用类型的数据

4.call和apply立即执行这个函数,bind方法可以让对应的函数想什么时候调就什么时候调用,并且可以将参数在执行的时候添加,这是它们的区别,根据自己的实际情况来选择使用。
5.当参数的个数确定的情况下可以使用call;当参数的个数不确定的情况下可以使用apply

 

 

posted @ 2021-05-18 09:47  nlovestudy  阅读(959)  评论(0编辑  收藏  举报