一道面试题--面向对象
function Parent(){
this.a = 1;
this.b = [1,2,this.a];
this.c = { demo : 5 };
this.show = function (){
console.log( this.a , this.b , this.c.demo );
}
}
function Child(){
this.a = 2;
this.change = function(){
this.b.push(this.a);
this.a = this.b.length;
this.c.demo = this.a++;
}
}
Child.prototype = new Parent();
var parent = new Parent();
var child1 = new Child();
var child2 = new Child();
child1.a = 11;
child2.a = 12;
parent.show();
child1.show();
child2.show();
child1.change();
child2.change();
parent.show();
child1.show();
child2.show();
结果如下:
console.log: 1, [1, 2, 1], 5
console.log: 11, [1, 2, 1], 5
console.log: 12, [1, 2, 1], 5
console.log: 1, [1, 2, 1], 5
console.log: 5, [1, 2, 1, 11, 12], 5
console.log: 6, [1, 2, 1, 11, 12], 5