下面用一个老师上课讲的实例来讲解:
// Dog对象
// 基类
// 构造函数
// name,breed,weight
// 原型
// run() ==> console.log(name + "RUN!!!")
// wag() ==> console.log(name + "WAG!!!")
// 子类--三个对象Fido、Fluffy和Spot
// 构造函数
// 继承基类构造函数
// 原型
// info() => console.log("输出信息:name,breed,weight")
// 在三个对象自定义一个方法
// 4.基类(父类)
//构造函数
function DogType(name,breed,weight){
this.name = name;
this.breed = breed;
this.weight = weight;
}
// 5.基类原型
DogType.prototype.run = function(){
console.log(this.name + "RUN!!!");
}
DogType.prototype.wag = function(){
console.log(this.name + "WAG!!!");
}
//2.子类
//构造函数
function Dog(name,breed,weight){
// 3.继承基类构造函数
DogType.apply(this,[name,breed,weight])
}
// 6.子类继承基类原型
Dog.prototype = DogType.prototype;
// 7.定义子类原型方法
Dog.prototype.info = function(){
console.log("输出信息:"+this.name+"--"+this.breed+"--"+this.weight)
}
//1.实例化参数,传参
var fldo = new Dog("fldo","柴犬",38);
var fluffy = new Dog("fluffy","贵宾",38);
var spot = new Dog("spot","吉娃娃",38);
// 8.输出结果
console.log(fldo);
fldo.run();
fldo.wag();
fldo.info();
// 9.对象创建单独方法
fldo.fldoFun = function(){
console.log("柴犬看门能力。。。")
}
fluffy.fluffyFun = function(){
console.log("吸引有钱人。。。")
}
spot.spotFun = function(){
console.log("卖萌。。。")
}
// 10.输出每个对象方法
fldo.fldoFun();
fluffy.fluffyFun();
spot.spotFun();