apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性.
Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args–>arguments)
call:和apply的意思一样,只不过是参数列表不一样.
Function.call(obj,[param1[,param2[,…[,paramN]]]])
obj:这个对象将代替Function类里this对象
params:这个是一个参数列表
call示例:
/*定义一个人类*/
function Person(name,age){
this.name = name;
this.age = age;
}
/*定义一个学生*/
function Student(name,age,grade){
Person.call(this,name,age,grade);
this.grade = grade;
}
/*实例化一个学生*/
var student = new Student("张三",21,"一年级");
alert("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);
apply示例:
<script>
/*定义一个人类*/
function Person(name,age){
this.name = name;
this.age = age;
}
/*定义一个学生*/
function Student(name,age,grade){
this.grade = grade;
Person.apply(this,arguments); }
/*实例化一个学生*/
var student = new Student("张三",21,"一年级");
alert("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);
</script>