js 创建对象的方式
2021-07-13 05:07
1.Person.prototype设置为等于一个以对象字面量形式创建的对象
,但是会导致.constructor不在指向Person了。
Object.defineProperty(Person.prototype, ‘constructor‘, {
enumerable: false,
value: Person
})
2.原型中所有属性实例是被很多实例共享的,这种共享对于函数非常合适。
对于那些包含基本值的属性也勉强可以,毕竟实例属性可以屏蔽原型属性。
但是引用类型值,就会出现问题了
function Person() {
}
Person.prototype = {
name: ‘jiang‘,
friends: [‘Shelby‘, ‘Court‘]
}
var person1 = new Person()
var person2 = new Person()
person1.friends.push(‘Van‘)
console.log(person1.friends) //["Shelby", "Court", "Van"]
console.log(person2.friends) //["Shelby", "Court", "Van"]
console.log(person1.friends === person2.friends) // true
上一篇:js立即执行函数应用--事件绑定
下一篇:C#基本语法之ref和out