美文网首页
JavaScript对象创建模式

JavaScript对象创建模式

作者: Lnevan | 来源:发表于2021-07-13 12:00 被阅读0次

1.object构造函数

  • 先创建空object对象,再动态添加属性/方法
  • 适用场景:起始时不确定对象内部数据
  • 存在问题:语句太多
let p = new Object()
p.name = 'Tom'
p.age = 12
p.setName = function(name) {
  this.name = name
}
p.setName("JACK")
console.log(p.name,p.age) //JACK 12

2.对象字面量模式

  • 使用{}创建对象,同时指定属性/方法
  • 适用场景:起始时对象内部数据是确定的
  • 存在问题: 如果创建多个对象,有重复代码
let p = {
  name: 'Tom',
  age: 12,
  setName: function (name) {
    this.name = name
  }
}

3.工厂模式

  • 通过工厂函数动态创建对象并返回
  • 适用场景:需要创建多个对象
  • 存在问题:对象没有一个具体的类型,都是Object类型(所以此种方法较为少用)
  • 工厂函数:返回一个对象的函数
function createPerson(name,age) {
  let obj = {
    name: name,
    age: age,
    setName: function(name) {
      this.name = name
    }
  }
  return obj
}
let p1 = createPerson('Tom',12)
let p2 = createPerson('Jack',13)

4.自定义构造函数模式

  • 自定义构造函数,通过new创建对象
  • 适用场景:解决了工厂模式的问题,需要创建多个类型确定的对象
  • 存在问题:每个对象都有相同的数据,浪费内存(例如p1和p2都是从Person构造函数中产生的,那么它们都共同拥有相同的方法,该方法重复了占用了内存,故最好将其放在原型中)
function Person(name,age) {
  this.name = name
  this.age = age
  this.setName = function(name) {
    this.name = name
  }
}
let p1 = new Person('Tom',12)
p1.setName('Jack')
console.log(p1.name,p1.age) //Jack 12

5.构造函数+原型模式

  • 自定义构造函数,属性在函数中初始化,方法添加在原型上
  • 适用场景:需要创建多个类型确定的对象
function Person(name,age) {
  this.name = name
  this.age = age
}
Person.prototype.setName = function(name) {
  this.name = name
}
let p1 = new Person('Tom',12)

相关文章

  • 链式操作

    对象字面量创建对象 构造函数创建对象 构造函数和原型一起创建对象 参考 JavaScript设计模式 --- 方法...

  • 原型模式(一)

    原型模式(一) 在Javascript中一切皆是对象,所以我们会创建很多对象。那么就来看看创建对象的方法.原型模式...

  • javascript对象创建详解

    总结《javascript高级程序设计》第六章有关于对象创建的内容 对象创建的七种模式 1.工厂模式 通过函数创建...

  • 原型和原型链

    一、理解原型设计模式以及 JavaScript 中的原型规则 设计模式 工厂模式 在函数内创建一个对象,给对象赋予...

  • JS设计模式

    Javascript的设计模式 设计模式基本可以分为三组模式:创建型模式:设计对象的创建与初始化结构型模式:描述了...

  • JS笔记-006-JS对象-数字-字符串-日期-数组-逻辑

    JS对象 创建 JavaScript 对象 通过 JavaScript,您能够定义并创建自己的对象。 创建新对象有...

  • 【前端学习笔记】JavaScript对象的几种创建方式整理-简要

    笔记来自JavaScript高级程序设计的学习笔记。 JavaScript对象的其中创建方式。 一、工厂模式 二、...

  • H5-2.25Javascript模块模式

    从javascript对象创建说起说起Module(模块)模式,可能一些刚刚接触javascript的同学还是觉得...

  • 【javascript】对象创建模式

    在这篇文章中将会介绍命名空间、依赖声明、模块模式、沙箱模式。它们都可以组织应用程序的代码结构,降低隐含的全局变量带...

  • JavaScript对象创建模式

    1.object构造函数 先创建空object对象,再动态添加属性/方法 适用场景:起始时不确定对象内部数据 存在...

网友评论

      本文标题:JavaScript对象创建模式

      本文链接:https://www.haomeiwen.com/subject/pinjpltx.html