function Oa(){
this.gender = '男'; //注意这里
}
Oa.prototype={
fn1:function(){},
fun2:function(){}
}
function Ob(name,age){
this.name=name;
this.age=age;
}
var cc = function(){};
cc.prototype = Oa.prototype
var dd = new cc();
Ob.prototype=dd;
console.log(Oa.prototype);//
console.log(Ob.prototype);
this.gender = '男'; //注意这里
}
Oa.prototype={
constructor:Oa,//加上的代码
fn1:function(){},
fun2:function(){}
}
function Ob(name,age){
this.name=name;
this.age=age;
}
var cc = function(){};
cc.prototype = Oa.prototype
var dd = new cc();
Ob.prototype=dd;
--------------------<1>
console.log(Oa.prototype);
console.log(Ob.prototype);
this.gender = '男'; //注意这里
}
Oa.prototype={
fn1:function(){},
fun2:function(){}
}
function Ob(name,age){
this.name=name;
this.age=age;
}
var cc = function(){};
cc.prototype = Oa.prototype
var dd = new cc();
Ob.prototype=dd;
console.log(Oa.prototype);//
console.log(Ob.prototype);
function Oa(){
this.gender = '男'; //注意这里
}
Oa.prototype={
constructor:Oa,//加上的代码
fn1:function(){},
fun2:function(){}
}
function Ob(name,age){
this.name=name;
this.age=age;
}
var cc = function(){};
cc.prototype = Oa.prototype
var dd = new cc();
Ob.prototype=dd;
--------------------<1>
console.log(Oa.prototype);
console.log(Ob.prototype);
打印:
Oa.prototype重写了constructor属性之后,它的原型constructor指向了自己的构造函数,而不是一开始object,Ob的原型指向了Oa而不是
一开始的object,
所以如果创建子类可以在--<1>处加上Ob.prototype.constructor =Ob;
这是js创建子类的关键,如果不这样做,原型对象仅仅是一个普通的对象,它只继承自Object.prototype,
这意味着你的类和所有的子类一样是Object的子类