Function.apply(obj,args): 函数的劫持与对象的复制 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args) Function.call(obj,[para1,[para2,[paraN,...]]]) 和apply类似,只是参数不同,一个是数组一个是参数列表。
<!-- lang: js -->
<script type="text/javascript">
/*定义一个人类*/
function Person(name,age)
{
this.name=name;
this.age=age;
}
/*定义一个学生类*/
functionStudent(name,age,grade)
{
Person.apply(this,arguments);
this.grade=grade;
}
//创建一个学生类
var student=new Student("qian",21,"一年级");
//测试
alert("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);
//大家可以看到测试结果name:qian age:21 grade:一年级
//学生类里面我没有给name和age属性赋值啊,为什么又存在这两个属性的值呢,这个就是apply的神奇之处.
</script>