原型继承中对象的问题

Posted 小结巴巴吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原型继承中对象的问题相关的知识,希望对你有一定的参考价值。

<script>
    function Parent() {
        this.data={a1:\'a1\'}
        this.show=function () {
            console.log(this.data)
        }
    }
    function Child(){
        this.set=function () {
            this.data[\'a2\']=\'a2\'   //改变原型中的对象
            this.data=\'d\' //改变当前对象的data,并不能改变 原型上面的 data
        }
    }
    //所有的原型都是指向同一个对象,(引用的同一个对象),改变则所有的改变
    Child.prototype = new Parent()
    var child1 = new  Child()
    var child2 = new  Child()
    child1.set()
    //   this.data[\'a2\']=\'a2\'   //改变原型中的对象,指针的形式
    //   this.data=\'d\' //改变当前对象的data,并不能改变 原型上面的 data
    //   不能改变原型上面的属性值,只能改变原型什么属性对应的应用中的值
    child2.show()
    //   对象中不含this.data,返回原型上面的data,因为指向的是同一个原型,所有打印 {a1:\'a1\',a2:\'a2\'}
    console.log(\'child1\',child1)
    console.log(\'child2\',child2)
</script>

  

以上是关于原型继承中对象的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于对象构造函数原型原型链继承

深入理解javascript原型和闭包——继承

Js中的对象构造函数原型原型链及继承

JavaScript高级原型和继承相关:原型对象函数原型原型链和继承继承的优化对象判断相关方法

JavaScript高级原型和继承相关:原型对象函数原型原型链和继承继承的优化对象判断相关方法

原型继承中对象的问题