01-面向对象(创建方式)

本文探讨了JavaScript中对象创建的两种常见方式,字面量与new关键字,以及构造函数和工厂模式的优缺点。着重分析了工厂模式下重复代码的问题,并介绍了构造函数的使用来避免内存浪费,以提升代码复用性和效率。
摘要由CSDN通过智能技术生成

创建对象的方式:

  1. 字面量的方式 : const obj={}
  2. List item
  3. 早期通过new Object的方式:const obj=new Object()
  4. 工厂模式:
  5.   // 工厂模式:=>函数
      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)
      
      // 问题:多个对象所共有的方法分别存储到了不同的内存空间中,浪费内存资源
    
  6. 构造函数形式:
  7.   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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值