当在某个局域范围内要调用构造函数中或者其他局域范围内的方法
此时可以用到临时调用方法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
时间: 2024-10-08 00:52:54