深入理解js对象4种设计模式-面试常问

本文深入探讨JavaScript中的四种设计模式:工厂模式用于批量创建对象,减少代码冗余;构造函数模式能区分对象类型,但方法冗余;原型模式实现方法共享,但实例无法覆盖原型属性;组合模式结合前两者优点,是最常见的创建对象方式。了解这些模式的优缺点,对于提升JavaScript开发和面试很有帮助。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1. javascript 工厂模式

什么是工厂模式?为什么需要工厂模式?工厂模式的作用?

  1. 工厂模式是一种创建型模式,简单来说,工厂模式就是创建对象的一种模式
  2. 当我们需要创建大量的对象,并且每个对象都有相同的属性时,如果我们把每个对象都单独创建,就会造成代码的大量冗余。因此我们需要用一些更便捷,节省时间和内存空间的方法,去创造大量的对象。
  3. 工厂模式的作用:
    创建对象;降低代码冗余度。
    工厂模式就相当于一个生产车间,你把零件的信息都设置好丢进工厂里,工厂就会帮你把零件造出来。
1.1 使用工厂模式创建对象
//将创建对象的代码封装在一个函数中
function createPerson(name, age, gender) {
   
  var person = new Object();
  person.name = name;
  person.age = age;
  person.gender = gender;
  person.sayName = function () {
   
    console.log(this.name);
  }
  return person;
}
//利用工厂函数来创建对象
var person1 = createPerson("zhangsan", 18, 'male');
var person2 = createPerson("lisi", 20, 'female');

**优点:**只要我们在利用工厂函数创建对象时,给函数传入参数就行
**缺点:**这种方式本质上是将创建对象的过程进行了封装,本质并没有改变,我们创建一个student时无法知道其具体的数据类型,只知道这是一个对象,往往实际开发中我们需要确定这个对象到底是个Person的实例还是Dog的实例。

2. 构造函数模式

ECMAScript 中的构造函数是用于创建特定类型对象的。像 Object 和 Array 这样的原生构造函数,运行时可以直接在执行环境中使用。当然也可以自定义构造函数,以函数的形式为自己的对象类型定义属性和方法。
JavaScript中可以自定义构造函数,从而自定义对象类型的属性和方法,构造函数本身也是函数,只不过可以用来创建对象。
1.1的案例可以用构造函数这样写:

// 自定义构造函数
function Person(name, age, gender) {
   
  this.name = name;
  this.age = age;
  this.gender = gender;
  this<
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值