本人js
新手, 最近在学习对象的内容的时候遇到了一点小疑问, 如下:
个人理解: 每次使用new
命令生成实例对象以后, 所有构造函数里面的属性都会被定义在实例对象上, 也就是说任何两个实例对象上, 里面的属性都是不一样的无法共享, 但是如果那个属性不是方法, 其似乎还是'一样的', 看代码:
var Cat = function() {
this.color = 'red'
this.say = function() {
console.log('miao')
}
}
var c1 = new Cat()
var c2 = new Cat()
console.log(c1.color === c2.color) // true
console.log(c1.say === c2.say) // false
对于say
这个方法是因为两个实例对象方法都是不一样, 这也是为什么要用prototype
来兴义方法, 但是为什么color
这个属性显示结果为true
? 同样作为属性两个实例对象在生成的时候应该是不同的, 但是结果为什么是true
?不是特别理解
希望能有前辈给予解答, 谢谢!
C
P
S