//JS的继承方式一:对象冒充
//特点:对象冒充可以支持多重继承。简单来说,一个类可以继承多个超类
//多种继承,后面的类优先级更高,也就是它会覆盖靠前类的同名方法
function ClassA(sName) {
this.name = sName;
this.sayHello = function () {
alert('hello,My name is:' + this.name);
}
}
function ClassB(sName, sAge) {
this.nMethod = ClassA;
this.nMethod(sName);
delete this.nMethod;
this.age = sAge;
this.sayAge = function () {
alert('age:' + this.age);
}
}
window.onload = function () {
var a = new ClassA('rose');
var b=new ClassB('JACK',15);
a.sayHello();
b.sayHello();
b.sayAge();
}
//JS的继承方式二:原型链
//特点:无法使用带参数的构造函数
//JS的继承方式三:混合方式
//创建类的最好方式是用构造函数定义属性,用原型定义方法
window.onload = function () {
var objA = new ClassA();
var objB = new ClassB();
objA.color = "blue";
objB.color = "red";
objB.name = "John";
objA.sayColor();
objB.sayColor();
objB.sayName();
}
function ClassA() {
}
ClassA.prototype.color = "blue";
ClassA.prototype.sayColor = function () {
alert(this.color);
};
//
/* function ClassB(sColor, sName) {
ClassA.call(this, sColor);
this.name = sName;
} */
function ClassB() {
}
ClassB.prototype = new ClassA();
ClassB.prototype.name = "";
ClassB.prototype.sayName = function () {
alert(this.name);
};