新闻中心

js创建对象的几种方式

2025-11-13
浏览次数:
返回列表
J*aScript中创建对象有7种方式:1. 字面量方式最简单但无法复用;2. new Object()构造函数略显冗长;3. 工厂函数可批量创建但实例原型指向Object;4. 构造函数配合new创建实例,但方法重复占用内存;5. 原型方式共享方法节省内存,但引用属性可能被共用;6. 构造函数+原型组合模式兼顾属性独立与方法共享,是标准模式;7. ES6 class语法更清晰,支持继承和静态方法,推荐现代开发使用。

js创建对象的几种方式

J*aScript 中创建对象有多种方式,每种都有其适用场景。下面介绍几种常见且实用的方法。

1. 字面量方式创建对象

这是最简单、最常用的方式,适合创建单个对象。

直接使用花括号 {} 定义属性和方法。

const person = { name: '张三', age: 25, sayHello() { console.log('你好,我是' + this.name); } }; person.sayHello(); // 输出:你好,我是张三

优点是语法简洁,缺点是无法复用,不适合创建多个类似对象。

2. 使用 new Object() 构造函数

通过内置的 Object 构造函数创建对象,本质和字面量类似。

const car = new Object(); car.brand = '丰田'; car.year = 2025; car.start = function() { console.log('启动车辆'); };

这种方式略显冗长,现在较少使用,但能帮助理解对象的构造过程。

3. 工厂函数模式

定义一个函数,返回一个对象,用于批量创建相似对象。

function createPerson(name, age) { return { name: name, age: age, sayHello() { console.log('我是' + this.name); } }; } const p1 = createPerson('李四', 30); const p2 = createPerson('王五', 28);

解决了重复创建的问题,但对象无法识别原型,所有实例的 constructor 都指向 Object。

4. 构造函数方式

使用自定义构造函数,配合 new 关键字创建实例。

飞蛙B2B2C商城电商系统 飞蛙B2B2C商城电商系统

飞蛙B2B2C(FeiWa B2B2C)商城系统是山东破浪网络科技有限公司于2017年最新推出的企业级B2B2C电商平台系统,采用PHP5+MySQL技术为基础,OOP(面向对象)方式进行核心框架搭建,结合MVC模式进行开发,可以支持Windows/Unix服务器环境,需PHP5.3及以上版本支持,可运行于包括Apache、IIS和Nginx在内的多种WEB服务器。飞蛙B2B2C(FeiWa B2

飞蛙B2B2C商城电商系统 0 查看详情 飞蛙B2B2C商城电商系统 function Person(name, age) { this.name = name; this.age = age; this.sayHello = function() { console.log('你好,我是' + this.name); }; } const p1 = new Person('赵六', 35); const p2 = new Person('钱七', 22);

每个实例都有自己的方法副本,存在内存浪费问题。但可以通过 prototype 改进。

5. 原型(prototype)方式

将方法挂载在构造函数的 prototype 上,实现方法共享。

function Animal() {} Animal.prototype.type = '动物'; Animal.prototype.speak = function() { console.log('发出声音'); }; const dog = new Animal(); dog.speak(); // 发出声音

节省内存,方法共用。但所有实例共享属性,若属性是引用类型可能互相影响。

6. 构造函数 + 原型组合模式

目前最常用的创建对象方式:构造函数定义实例属性,原型定义方法。

function Student(name, grade) { this.name = name; this.grade = grade; } Student.prototype.study = function() { console.log(this.name + '正在学习'); }; const s1 = new Student('小明', 3); s1.study(); // 小明正在学习

兼顾了属性独立与方法共享,是 JS 中创建自定义对象的标准模式。

7. ES6 class 语法

ES6 引入的 class 语法,本质上是构造函数的语法糖,更清晰易读。

class Teacher { constructor(name, subject) { this.name = name; this.subject = subject; } teach() { console.log(this.name + '教' + this.subject); } } const t1 = new Teacher('刘老师', '数学'); t1.teach(); // 刘老师教数学

结构清晰,支持继承(extends)、静态方法等,推荐现代开发中使用。

基本上就这些。根据项目需求和环境选择合适的方式即可。不复杂但容易忽略细节。

以上就是js创建对象的几种方式的详细内容,更多请关注其它相关文章!


# 最简单  # 白银短视频推广网站  # 惠城网站推广多少钱  # 淄博提供网站建设价格  # seo看什么  # 短信营销推广方案模板  # 百果园推广营销  # 网站推广平台哪家强  # 谷歌seo推广哪个网站  # 银川网站建设开发多少钱  # 痛风推广营销方案  # 小明  # 如何使用  # javascript  # 你好  # 自定义  # 都有  # 如何实现  # 几种  # 我是  # speak  # 丰田  # js  # java  # es6 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Go RPC HTTP服务正确实现与常见陷阱解析  生成rdflib自定义SPARQL函数:参数匹配与实践指南  AO3最新可访问网址 Archive of Our Own官方在线入口  PHP中获取MongoDB服务器运行时间(Uptime)的专业指南  Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略  如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】  如何使用Rector自动化升级旧代码_通过Composer安装和配置Rector进行代码重构  AO3最新官网入口公告_2025AO3镜像站实时查询方法  sublime怎么进行远程开发编辑_配置rsub/rmate实现sublime编辑服务器文件  如何在J*a中使用Locale处理多语言环境  谷歌google账号注册详细步骤 谷歌账号注册官方教程  智慧团建扫码登录入口 智慧团建扫码登录入口官网版​  J*aScript 字符串标签转换:使用正则表达式高效替换  《北京人工智能产业白皮书(2025)》发布:全年核心产值预计突破 4500 亿元  C++ map遍历方法大全_C++ map迭代器使用总结  CSS实现侧边栏导航项全宽圆角悬停背景效果  C++如何操作注册表_Windows平台下C++读写注册表的API函数详解  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  Golang并发任务中错误如何聚合_Golang goroutine error收集方式  印象笔记如何设离线包出差查阅_印象笔记设离线包出差查阅【离线阅读】  印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】  妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画  Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践  解决Django多数据库/多Schema环境下外键迁移问题  J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题  TikTok评论显示延迟如何处理 TikTok评论刷新优化方法  Gmail邮箱申请注册直达_Gmail邮箱免费注册PC版官网入口2025  mysql通配符支持数字匹配吗_mysql通配符能否用于数字匹配的解析  Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南  如何在Python中使用Optional类型处理可变对象并避免Pylint警告  AO3官方镜像站点汇总 AO3同人作品网页版直达链接  SteamMachine定价或为699美元 大家想入手吗?  抖音怎么赚钱_抖音创作者变现方法与途径指南  mysql如何设置表访问权限_mysql表访问权限配置  解决 Express.js 中 PUT 请求密码修改失败的路由配置指南  Golang如何优雅处理error_Golang error处理最佳实践总结  mcjs网页版流畅运行 mcjs低配电脑畅玩入口  解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException  win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】  qq游戏大厅官方下载_qq游戏免费下载安装入口  4399体育竞技小游戏_4399小游戏赛事入口  漫蛙manwa2最新登录网址_漫蛙manwa2手机网页版入口  Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值  蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台  千牛数据看板网页版_千牛数据看板网页版访问方法  《噬血代码2》新预告片发布 展示游戏剧情  excel怎么制作工资条 excel快速生成工资条的方法  qq游戏网页版直接玩_qq游戏免下载快速入口  AO3网页版最新入口合集 Archive of Our Own在线访问指南  学习通在线学习平台 学习通网页版直接进入课程中心 

搜索