临时调用call()与apply()方法

Posted To be better

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了临时调用call()与apply()方法相关的知识,希望对你有一定的参考价值。

当在某个局域范围内要调用构造函数中或者其他局域范围内的方法

此时可以用到临时调用方法call与apply

 

虽然这两个方法都是起临时调用的功能,但是用法不一样

call(obj,val)

obj:对象名,构造函数用指代this;  val:指代属性值

apply(obj,arr)

obj:对象名,构造函数用指代this;  arr:属性值的数组

 

实例一:

function SuperType(name){
  this.name = name;
}

function SubType(){
  // SuperType.call(this,"Lucy");    //临时调用构造函数SuperType里面的name属性
  SuperType.apply(this,["Lucy"]);  
  this.age = 19;
}

var instance = new SubType();
alert(instance.name);   //Lucy

 

 

//但是有些场合只能用特定的方法,不能互换

实例二:

取数组中最大值:

function isMax(arr){return Math.max.apply(null,arr)}

var nums = isMax([2,3,4,5,6]);

alert(nums);   //6

 

以上是关于临时调用call()与apply()方法的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 方法apply和call的差别

在JS中,call()方法和apply()方法到底该怎么应用?

call()与apply()区别

浅谈javascript中的call与apply方法

javascript call 与 apply

apply()与call()的区别