js 创建对象的方式

2021-07-13 05:07

阅读:326

 1.Person.prototype设置为等于一个以对象字面量形式创建的对象

,但是会导致.constructor不在指向Person了。

Object.defineProperty(Person.prototype, ‘constructor‘, {

  enumerablefalse,

  valuePerson

})

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


评论


亲,登录后才可以留言!