• 技术文章 >Web开发 >JavaScript

    js引用类型值的缺点

    小妮浅浅小妮浅浅2021-09-30 15:35:07原创3394

    1、如果在类型中定义了引用类型值,那么所有继承的共享引用类型值。

    值类型的继承不会致共享,单独分配内存空间。

    // 父构造函数
    function Father() {
        this.name = "father"
    }
    // 子构造函数
    function Children() {
    }
    // 实现继承:子构造函数的原型对象=父构造函数的实例对象
    Children.prototype = new Father()
    // 创建子实例
    let c1 = new Children()
    let c2 = new Children()
     
    // 不是引用类型值没有问题
    c1.name = "我修改了name"
    console.log(c1.name)// 我修改了name
     
    console.log(c2.name)// father

    2、引用类型的继承会导致共享和共享内存空间。引用类型继承后,所有实例都共享一份数据。

    // 父构造函数
    function Father() {
        this.child = {
            name: 'father'
        }
    }
    // 子构造函数
    function Children() {}
    // 实现继承:子构造函数的原型对象=父构造函数的实例对象
    Children.prototype = new Father()
    // 创建子实例
    let c1 = new Children()
    let c2 = new Children()
     
    // 是引用类型值就有问题
    c1.child.name = "我修改了name"
    console.log(c1.child)// { name: '我修改了name' }
     
    console.log(c2.child)// { name: '我修改了name' }

    以上就是js引用类型值的缺点,希望对大家有所帮助。更多js学习指路:js教程

    专题推荐:js 引用
    品易云
    上一篇:js子类型重写的注意点 下一篇:js原型不能传参的探究

    相关文章推荐

    • js中unload事件是什么• js中resize事件是什么• js中有哪些焦点事件• js中事件捕获的实现• js变量作用域是什么• js作用域链中的对象访问顺序• js链表结构如何实现• js中如何查找链表元素• js中insert如何插入节点• js中removeat删除节点的方法• js原型链继承的关系• js原型链默认的原型• js子类型重写的注意点

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网