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>