直接用例子来说明
/*定义一个人类*/
function Person(name,age) {
this.name=name;
this.age=age;
}
/*定义一个学生类*/
function Student(xingming,grade) {
Person.apply(this,grade);//可以简单的理解成在student中执行执行person里面的方法和属性
//Person中的this本来指向Person,但现在就
//指向了Student,所以student也就拥有了
//属性name和age
this.grade=grade;
}
//创建一个学生类
var student=new Student("qian",[21,"一年级"]);
//测试
alert("name:"+student.name+"\n"+"age:"+student.grade+"\n"+"grade:"+student.grade)
call()就是用来让括号里的对象来集成括号外函数的属性!就称之为继承。
call和apply真正强大的地方是能扩充函数赖以运行的作用域,改变函数的执行环境。
bind将对象收为第一个形参麾下成为一种方法属性。