js原型不能传参的示例分析

这篇文章主要介绍js原型不能传参的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

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原型不能传参的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!