一道面试题--面向对象

        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
posted @ 2017-11-12 22:29  云淡风轻xin  阅读(177)  评论(0编辑  收藏  举报