小生初学js,如果有什么错误的地方,还请大家见谅,还请大家指出.
apply()是Function()里的一个函数,主要功能我们下面再讲,我第一次用apply()的时候也是稀里糊涂的,后来我发现它其实和其他高级语言里的继承有很大的关系.
//定义一个函数Person
var Person = function(name,age){
//这里的this指代的是Person的实例的对象
this.name = name;
this.age = age;
//定义一个局部函数
this.talk = function(){
window.alert("talk");
};
};
//下面定义一个函数Student,我们要做的就是让Student继承Person的属性和里面的局部函数,再给他增加一个属性身高
var Student = function(name,age,height){
//用apply继承Person
//arguments指代的是student的所有的形参
Person.apply(this,arguments);
//此时已经继承了Person的属性和方法了
this.height = height;
};
//产生一个 student的实例
var XiaoMing = new Student("xiaoming",18,170);
//调用从Person继承过来的talk
XiaoMing.talk();//"talk"
//到这里差不多已经可以理解apply的继承了,其实我们并没有在student里定义 this.name = name; this.age = age; 而这两句则是从Person 那边继承过来的
但其实实际的js中,并没有继承这个概念,js只是基于对象的,而不是真正的面向对象的语言,我们这里讲解的apply也只是模拟,或者说类似于java或者其他高级语言里的继承