当前位置: 首页 > news >正文

js几种对象创建方式

适用于不确定对象内部数据

方式一:

var 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)

方式二: 对象字面量模式

套路:使用{}创建对象,同时指定属性、方法

适用场景:起始时对象内部数据是确定的

问题:如果创建多个对象,有重复代码

var p = {
name: 'TOM',
age: 12,setName: function(name) {this.name = name;}
}// 测试
console.log(p.name,p.age)// TOM 12
p.setName('JACK');
console.log(p.name,p.age)// JACK 12如果创建多个对象,代码重复
var p2 = {
name: 'TOM',
age: 13,setName: function(name) {this.name = name;}
}

方式三:工厂模式

套路:通过工厂函数动态创建对象并返回

适用场景: 需要创建多个对象

问题: 对象没有一个具体的类型都是Object类型

function createPerson (name,age) {// 返回一个对象的函数=》 工厂函数var obj = {name: name,age: age,setName: function(name) {this.name = name;}}return obj
}var p1 = createPerson('Tom',12)
var p1 = createPerson('Jack',13)

方式四:自定义构造函数模式

套路: 自定义构造函数,通过new创建对象

适用场景: 需要创建多个类型确定得对象

问题: 每个对象都有相同得数据,消费内存

// 定义类型function Person(name,age) {this.name = name;this.age = age;this.setName = function(name) {this.name = name;}
}
var p1 = new Person('TOM',12)
P1.setName('JACK')
console.log(p1.name,p1.age)

方式六:构造函数+原型的组合模式

*套路: 自定义构造函数,属性在函数中初始化,方法添加到原型上

*适用场景:需要创建多个类型确定的对象

function Person(name,age) {// 在构造函数中只初始化一般函数this.name = name;this.age = age;Person.prototype.setName = function(name) {this.name = name;}
}var p1 = new Person('tom',12)
var p1 = createPerson('jack',13)console.log(p1,p2)

原文链接:

37.尚硅谷_JS高级_对象创建模式_哔哩哔哩_bilibili

http://www.lryc.cn/news/24805.html

相关文章:

  • 阿里云服务器ECS适用于哪些应用场景?
  • Ajax学习笔记01
  • Jinja2----------过滤器的使用、控制语句
  • 面试了1个自动化测试,开口40W年薪,只能说痴人做梦...
  • 冲鸭!33% 程序员月薪达到 5 万元以上~
  • 【RSA】HTTPS中SSL/TLS握手时RSA前后端加密流程
  • clion在linux设置桌面启动图标(jetbrains全家桶均适用)
  • Java数据结构LinkedList单链表和双链表模拟实现及相关OJ题秒AC总结知识点
  • 立创EDA 学习 day01 应用下载安装,基本使用的操作
  • 华为OD机试真题Python实现【火星文计算】真题+解题思路+代码(20222023)
  • yolov8 修改类别 自定义数据集
  • Linux环境下验证python项目
  • MAC开发使用技巧
  • 第三章-OpenCV基础-7-形态学
  • DeepFaceLab 中Ubuntu(docker gpu) 部署
  • 分析帆软填报报表点提交的逻辑
  • 【ROS学习笔记9】ROS常用API
  • 客户关系管理挑战:如何保持客户满意度并提高业绩?
  • Cartesi 2023 年 2 月回顾
  • 《爆肝整理》保姆级系列教程python接口自动化测试框架(二十六)--批量执行用例 discover(详解)
  • Ubuntu学习篇
  • extern关键字
  • T3 出行云原生容器化平台实践
  • 从0开始学python -44
  • 22- estimater使用 (TensorFlow系列) (深度学习)
  • eKuiper 1.8.0 发布:零代码实现图像/视频流的实时 AI 推理
  • [Ansible系列]ansible JinJia2过滤器
  • Cookie、Session、Token区分
  • 回暖!“数”说城市烟火气背后
  • JS逆向-百度翻译sign