创建对象的方式:
- 字面量的方式 : const obj={}
- List item
- 早期通过new Object的方式:const obj=new Object()
- 工厂模式:
-
// 工厂模式:=>函数 function createPersonObj(name,age){ return{ name, age, eat(){ console.log('人可以吃饭饭') } } } const p1=createPersonObj('zs',18) const p2=createPersonObj('lisi',18) const p3=createPersonObj('wangwu',18) console.log(p1,p2,p3) // 问题:多个对象所共有的方法分别存储到了不同的内存空间中,浪费内存资源
- 构造函数形式:
-
function Person(name,age){ this.naame=name this.age=age // this.eat=function(){ // consoe.log(eat) // } } // 将eat方法 放置在函数的原型对象 Person.prototype.eat=function(){ console.log('eat') } const p1=new Person('zs',18) const p2=new Person('lisi',18) const p3=new Person('wangwu',18) console.log(p1,p2,p3)
前两种方式存在问题,创建多个类型相同对象时,编写的代码冗余
// 例:
// const p=new Person('张三',18)
// const p1=new Person('张三',18)
// const p2=new Person('张三',18)
// const p3=new Person('张三',18)