文章 > JavaScript > js原型不能传参的探究

js原型不能传参的探究

js

小妮浅浅

2021-09-30 15:34:373873浏览 · 0收藏 · 0评论

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教程

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

Baidu