• 技术文章 >Web开发 >JavaScript

    js原型不能传参的探究

    小妮浅浅小妮浅浅2021-09-30 15:34:37原创3419

    1、由于原型包含了引用类型值带来的问题,在创建子类型的例子中,参数不能像超级类型的构造函数一样传递。

    2、传递给超类型的构造函数参数将改变继承这种超类型子类型的所有实例。

    实例

    // 父构造函数
    function Father(name, age) {
        this.age = age
        this.child = {
            name: name
        }
    }
    // 子构造函数
    function Children() {}
     
    Children.prototype = new Father('father', 111)
     
    // 创建子实例
    let c1 = new Children()
    let c2 = new Children()
    // 修改引用类型值 name
    c1.child.name = '修改引用类型值'
    // 修改值类型 age
    c1.age = 222
    console.log(c1.age)// 222
     
    console.log(c1.child)// { name: '修改引用类型值' }
     
    console.log(c2.age)// 111
     
    console.log(c2.child)// { name: '修改引用类型值' }

    在修改了某个实例的值类型age后,两个实例的值类型age值不同。相反,在修改了某个实例的引用类型值后,所有实例的引用类型值都发生了变化,没有隔离,共享了一个数据。

    以上就是js原型不能传参的探究,希望对大家有所帮助。更多js学习指路:js教程

    专题推荐:js 原型
    品易云
    上一篇:js引用类型值的缺点 下一篇:js使用构造函数的缺点

    相关文章推荐

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

    全部评论我要评论

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

  • 取消发布评论
  • 

    Python学习网