一、继承
//创建父类
//创建子类
//建立关系
function P(){
}
function C(){
}
//第一种 子类的东西暴露给父类,不推荐
C.prototype = P.prototype;
var c1 = new C();
//第二种 凭空创建一个对象,没用到,浪费内存,不推荐
C.prototype = new P();
//第三种
function F();
F.prototype = P.prototype;
C.prototype = F();
var f = new F();
C.prototype = f;
即
C.prototype = Object.create(P.prototype);
二、构造器修正
functoin Person(){ //1.创建父类
}
Persion.prototype.headCount = 1;
Persion.prototype.eat = function(){
}
function Programmer(){ //2.创建子类
}
Programmer.prototype = Object.create(Persion.prototype); //3.继承
Programmer.prototype.constructor = Programmer;
Programmer.prototype.language = "javascript"; //4.子类方法
Programmer.prototype.work = function(){
console.log("i am writing code in"+ this.language)
}
三、自己写函数升级
function createEx(Child,Parent){
function F(){};
F.protytype = Parent.prototype;
Child.prototype = new F();
Child.prototype.constructor = Child;
Child.super = Child.base = Parent.prototype; //继承父类属性
}
createEx(Programer,Person);
四、一些属性
.hasOwnProperty()://自己是否有X属性
.isPrototypeOf() //是否是X的原型
.getPrototypeOf() //得到原型