JavaScript 对象与原型
目录JavaScript 对象创建方式详解1.1 构造函数创建对象1.2 对象字面量创建对象1.2.1 基本语法1.2.2 访问对象成员1.2.3 遍历对象属性1.2.4 this 关键字1.3 工厂模式创建对象1.4 构造函数模式1.4.1 基本用法1.4.2 new 的执行过程1.4.3 优化方法定义1.5 原型模式1.5.1 原型对象1.5.2 原型链1.6 垃圾回收1.7 ES6 Class 语法JavaScript 对象创建方式详解1.1 构造函数创建对象1.2 对象字面量创建对象1.2.1 基本语法1.2.2 访问对象成员1.2.3 遍历对象属性1.2.4 this 关键字1.3 工厂模式创建对象1.4 构造函数模式1.4.1 基本用法1.4.2 new 的执行过程1.4.3 优化方法定义1.5 原型模式1.5.1 原型对象1.5.2 原型链1.6 垃圾回收1.7 ES6 Class 语法JavaScript 对象创建方式详解1.1 构造函数创建对象使用new Object()构造函数创建对象是最基础的方式var obj new Object(); obj.name 张三; obj.gender 男; obj.age 18;特点使用new关键字调用构造函数语法较为冗长主要用于理解对象的基本概念1.2 对象字面量创建对象1.2.1 基本语法对象字面量提供更简洁的创建方式var obj { name: 猪八戒, age: 28, gender: 男, sayHi: function() { console.log(hi~); } };注意事项采用键值对形式定义属性多个属性间用逗号分隔方法本质上是匿名函数1.2.2 访问对象成员// 点语法访问 console.log(obj.name); // 方括号访问 console.log(obj[age]); // 调用方法 obj.sayHi();1.2.3 遍历对象属性使用for...in循环遍历对象for (var prop in obj) { console.log(属性名n); console.log(属性值obj[n]); }1.2.4 this 关键字this的指向规则函数调用指向 window方法调用指向调用对象构造函数调用指向新对象function showName() { console.log(this.name); } var obj1 { name: 孙悟空, show: showName }; var obj2 { name: 沙和尚, show: showName }; showName(); // 全局 obj1.show(); // 孙悟空 obj2.show(); // 沙和尚1.3 工厂模式创建对象解决批量创建对象问题function createPerson(name, age) { var obj new Object(); obj.name name; obj.age age; return obj; }缺点对象类型无法区分构造函数均为 Object1.4 构造函数模式1.4.1 基本用法function Person(name, age) { this.name name; this.age age; this.sayHi function() { console.log(Hi); }; } var p1 new Person(张三, 20);特点首字母大写约定必须使用 new 调用通过 this 添加成员1.4.2 new 的执行过程创建新对象绑定 this执行构造函数返回对象1.4.3 优化方法定义将方法提取到外部避免重复创建function sayHi() { console.log(Hi); } function Person(name) { this.name name; this.sayHi sayHi; }1.5 原型模式1.5.1 原型对象function Person() {} Person.prototype.name 张三; Person.prototype.sayHi function() { console.log(Hi); };特点所有实例共享原型成员方法只需定义一次1.5.2 原型链属性查找顺序对象自身原型对象Object.prototypenull1.6 垃圾回收JavaScript 自动管理内存var obj new Object(); // 解除引用 obj null;1.7 ES6 Class 语法class Person { constructor(name) { this.name name; } sayHi() { console.log(Hi, ${this.name}); } }特点语法更简洁本质仍是构造函数原型方法自动添加到原型JavaScript 对象创建方式详解1.1 构造函数创建对象使用new Object()构造函数创建对象是最基础的方式var obj new Object(); obj.name 张三; obj.gender 男; obj.age 18;特点使用new关键字调用构造函数语法较为冗长主要用于理解对象的基本概念1.2 对象字面量创建对象1.2.1 基本语法对象字面量提供更简洁的创建方式var obj { name: 猪八戒, age: 28, gender: 男, sayHi: function() { console.log(hi~); } };注意事项采用键值对形式定义属性多个属性间用逗号分隔方法本质上是匿名函数1.2.2 访问对象成员// 点语法访问 console.log(obj.name); // 方括号访问 console.log(obj[age]); // 调用方法 obj.sayHi();1.2.3 遍历对象属性使用for...in循环遍历对象for (var prop in obj) { console.log(属性名${prop}); console.log(属性值${obj[prop]}); }1.2.4 this 关键字this的指向规则函数调用指向 window方法调用指向调用对象构造函数调用指向新对象function showName() { console.log(this.name); } var obj1 { name: 孙悟空, show: showName }; var obj2 { name: 沙和尚, show: showName }; showName(); // 全局 obj1.show(); // 孙悟空 obj2.show(); // 沙和尚1.3 工厂模式创建对象解决批量创建对象问题function createPerson(name, age) { var obj new Object(); obj.name name; obj.age age; return obj; }缺点对象类型无法区分构造函数均为 Object1.4 构造函数模式1.4.1 基本用法function Person(name, age) { this.name name; this.age age; this.sayHi function() { console.log(Hi); }; } var p1 new Person(张三, 20);特点首字母大写约定必须使用 new 调用通过 this 添加成员1.4.2 new 的执行过程创建新对象绑定 this执行构造函数返回对象1.4.3 优化方法定义将方法提取到外部避免重复创建function sayHi() { console.log(Hi); } function Person(name) { this.name name; this.sayHi sayHi; }1.5 原型模式1.5.1 原型对象function Person() {} Person.prototype.name 张三; Person.prototype.sayHi function() { console.log(Hi); };特点所有实例共享原型成员方法只需定义一次1.5.2 原型链属性查找顺序对象自身原型对象Object.prototypenull1.6 垃圾回收JavaScript 自动管理内存var obj new Object(); // 解除引用 obj null;1.7 ES6 Class 语法class Person { constructor(name) { this.name name; } sayHi() { console.log(Hi, ${this.name}); } }特点语法更简洁本质仍是构造函数原型方法自动添加到原型

相关新闻

强烈安利!8个AI论文网站测评:本科生毕业论文全攻略

强烈安利!8个AI论文网站测评:本科生毕业论文全攻略

强烈安利!8个AI论文网站测评:本科生毕业论文全攻略 2026年AI论文写作工具测评:为何你需要这份指南? 随着人工智能技术的不断发展,越来越多的本科生开始借助AI工具辅助完成毕业论文的撰写。然而,面对市场上…

2026/7/2 22:59:32 阅读更多 →
Flutter for OpenHarmony 实战:贪吃蛇蛇的移动逻辑详解

Flutter for OpenHarmony 实战:贪吃蛇蛇的移动逻辑详解

Flutter for OpenHarmony 实战:贪吃蛇蛇的移动逻辑详解 文章目录 Flutter for OpenHarmony 实战:贪吃蛇蛇的移动逻辑详解一、前言二、坐标系统设计2.1 30x20网格坐标系2.2 坐标与像素映射2.3 Point类实现 三、Timer定时器实现自动移动3.1 Timer.periodic…

2026/7/6 13:24:44 阅读更多 →
Flutter for OpenHarmony 实战:碰撞检测算法与游戏结束处理

Flutter for OpenHarmony 实战:碰撞检测算法与游戏结束处理

Flutter for OpenHarmony 实战:碰撞检测算法与游戏结束处理 文章目录Flutter for OpenHarmony 实战:碰撞检测算法与游戏结束处理一、前言二、碰撞检测概述2.1 墙壁碰撞2.2 自身碰撞2.3 检测时机三、墙壁碰撞检测3.1 边界判断算法3.2 坐标越界示例3.3 代码…

2026/7/6 17:18:43 阅读更多 →

最新新闻

STM32F411RE与TS2007FC构建高效音频系统方案

STM32F411RE与TS2007FC构建高效音频系统方案

1. TS2007FC与STM32F411RE音频系统架构解析在嵌入式音频系统设计中,TS2007FC D类音频放大器与STM32F411RE微控制器的组合堪称黄金搭档。这套方案完美融合了高效能数字控制与高保真音频放大的双重优势,特别适合对音质和能效都有严苛要求的应用场景。TS200…

2026/7/7 20:15:03 阅读更多 →
终极Windows与Office激活方案:KMS智能脚本完整指南

终极Windows与Office激活方案:KMS智能脚本完整指南

终极Windows与Office激活方案:KMS智能脚本完整指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否厌倦了Windows系统频繁弹出的激活提示?是否因为Office突然变为只…

2026/7/7 20:15:03 阅读更多 →
黑苹果EFI配置终极简化:OpCore Simplify让复杂变简单的完整指南

黑苹果EFI配置终极简化:OpCore Simplify让复杂变简单的完整指南

黑苹果EFI配置终极简化:OpCore Simplify让复杂变简单的完整指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾被黑苹果的复杂配…

2026/7/7 20:13:02 阅读更多 →
CTF逆向实战:使用unlicense工具脱壳Themida保护程序

CTF逆向实战:使用unlicense工具脱壳Themida保护程序

1. 项目概述:当CTF逆向遇上Themida强壳在CTF(Capture The Flag)逆向工程赛题中,遇到被商业强壳保护的程序是家常便饭,也是最能拉开选手水平差距的环节。Themida,作为一款知名的商业保护壳,以其强…

2026/7/7 20:09:01 阅读更多 →
Buzz语音转录工具:5步打造你的本地化音频处理工作站

Buzz语音转录工具:5步打造你的本地化音频处理工作站

Buzz语音转录工具:5步打造你的本地化音频处理工作站 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Trending/buz/buzz 还在为会议录…

2026/7/7 20:09:01 阅读更多 →
Stable Diffusion本地部署指南:从零搭建你的AI绘画工作站

Stable Diffusion本地部署指南:从零搭建你的AI绘画工作站

1. 项目概述:为什么你需要一个本地的AI绘画引擎如果你对AI绘画感兴趣,刷到过那些令人惊叹的赛博朋克城市或者唯美的二次元角色,那你大概率听说过Stable Diffusion。它不像Midjourney那样需要付费订阅,也不像DALL-E那样有使用次数限…

2026/7/7 20:04:59 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻