类是属性和方法的封装,类可以继承。
javascript没有类的概念,它是这样模拟类与继承的:属性用call方法继承,方法用原型继承。
prototype和构造函数结合在一起是良好的,它是构造函数升华成类的必备利器。//变量与方法的寻找都遵循就近原则,由内到外,由对象到原型,找到即止。
//用构造函数和原型方法模拟实现类的功能,构造函数管理属性,原型管理方法。
var Person = function(name,age){
this.name = name;
this.age = age;
};
Person.prototype = {
say:function(){
return "my name is " + this.name + ",my age is " + this.age;
},
sing:function(){
return "i like to sing songs!";
}
};
//女士继承人类的属性和方法
var Lady = function(name,age){
Person.call(this,name,age);
};
Lady.prototype = Person.prototype;
Lady.prototype.dance = function(){ //扩充方法
return "lady likes dancing!";
};
var lily = new Lady("Lily",20);
console.log(lily.say()); //my name is Lily,my age is 20
console.log(lily.dance()); //lady likes dancing!