function Person(age, name) {
debugger
this.name = name;
this.age = age;
debugger
}
function Student(name, age, grade) {
Person.apply(this, arguments); //this 指当前的student arguments 就是"qian", 21,
// "一年级" student继承了 person里面的属性与方法(name,age) argument 作为参数传给
// persion
console.log(arguments);
debugger
this.grade = grade;
debugger
}
var student = new Student("qian", 21, "一年级");
console.log("name:" + student.name + "\n" + "age:" + student.age + "\n" + "grade:" + student.grade);
上面代码中的 apply可以替换成call 但是参数也需要修改 需要修改成 Person.apply(this, age,name); 与Person的参数映射
这里的参数需要和Person的形参形成对应关系
apply 会自动将 [arrar1,arrar2.....]转化成(arrar1,arrar2.....) 所以上面arguments 可以直接作为参数传进去
基于这一特性
可以使用 Math.max.apply(NULL,arrary[]) 获取最大值 注:如果第一个参数为空那么this的指向不会发生改变
另外参考一下