JS对象与函数初相识:从零掌握核心概念
前言本文是JavaScript基础系列的第五篇系统讲解对象和函数两大核心概念。内容包括对象的定义与意义、对象的创建与属性操作、属性名与属性值的特殊用法、函数的三种创建方式、形参与实参的匹配规则以及对象中方法的定义。掌握这些内容你将真正理解JS中“万物皆对象”的理念。一、对象的基本概念1.1 对象的定义万物皆对象JavaScript中几乎所有事物都是对象。对象的本质一组无序的相关属性和方法的集合。术语含义类比属性​事物的特征常用名词人的姓名、年龄方法​事物的行为常用动词人吃饭、走路1.2 对象的意义存储方式适用场景缺点变量保存单个值无法保存多个值数组保存多个值元素之间信息不连贯对象​保存一组无序的相关数据​结构清晰、更强大对象的优势表达结构更清晰、数据之间有联系、减少命名污染、节省内存空间。1.3 对象的分类分类说明示例内建对象​ES标准定义任何ES实现都可使用Math、String、Boolean、Function、Object宿主对象​JS运行环境提供主要指浏览器BOM浏览器对象模型、DOM文档对象模型自定义对象​开发人员自己创建用户自定义的各种对象二、对象的创建与操作2.1 创建对象使用new关键字调用的函数称为构造函数constructor专门用来创建对象。let per new Object(); console.log(typeof per); // object2.2 对象属性的操作添加属性let per new Object(); per.name jack; per.age 18;注意使用赋值运算符添加属性和方法每个属性和方法之间用;分号结束读取属性console.log(per.name); // jack console.log(per.age); // 18必须用[]操作属性的两种情况情况一动态的变量let key prompt(请输入属性名); per[key] 你好; // 属性名由用户输入决定情况二特殊的属性名如数字per[123a] 你好; console.log(per[123a]); // 你好 // per.123a 会报错2.3 使用对象的优势减少命名污染不同对象可以有同名属性数据关联性强相关数据组织在一起节省内存空间引用传递而非复制可使用内置方法继承Object原型的方法三、属性名和属性值的特殊用法3.1 属性名的特殊处理对象的属性名不强制遵守标识符规范什么名字都可以使用但建议尽量按照标识符规范命名特殊属性名如数字、带空格的不能用.操作必须用[]let obj new Object(); obj[123a] 你好; // 添加特殊属性名 console.log(obj[123a]); // 读取特殊属性名3.2 属性名的灵活使用let a prompt(请输入属性名); obj[a] 你好; // 属性名由用户输入决定3.3 属性值的多样性JS对象的属性值可以是任意数据类型甚至可以是另一个对象。let obj new Object(); let num new Object(); num.money 1000; obj.all num; // 属性值为另一个对象3.4 in运算符检查对象中是否含有指定属性有则返回true没有则返回false。let flag name in obj; // true 或 false四、函数的基本概念与使用4.1 函数的概念函数封装一段可被重复调用执行的代码块typeof检查函数对象时返回function函数在使用时分为两步声明函数和调用函数4.2 函数的三种创建方式方式一使用构造函数不常用let fun new Function( for(let i0; i10; i){document.writeln(你好);} ); fun(); // 调用函数注意实际开发中很少使用这种方式因为代码以字符串形式传递不利于维护。方式二函数声明常用function fun() { for (let i 0; i 10; i) { document.writeln(你好); } } fun(); // 调用函数方式三函数表达式匿名函数let fun function () { for (let i 0; i 10; i) { document.writeln(你好); } }; fun(); // 调用函数4.3 函数示例求和函数function getSum() { let sum 0; for (let i 1; i 100; i) { sum i; } console.log(sum); } getSum(); // 调用函数输出5050五、函数的参数5.1 形参与实参术语说明类比形参​函数定义时的参数用来接收实参变量声明但未赋值实参​函数调用时传递的参数给形参赋值给变量赋值function getSum(m, n) { // m, n为形参 let sum 0; for (let i m; i n; i) { sum i; } console.log(sum); } getSum(1, 100); // 1,100为实参5.2 形参与实参的匹配规则情况结果形参和实参个数一致正常输出结果实参个数多于形参取形参的个数多余的实参被忽略实参个数少于形参多余的形参为undefined建议形参和实参个数保持一致。5.3 实参的数据类型实参可以是任意数据类型包括对象和函数。// 对象作为参数 function fun(obj) { console.log(obj.name); console.log(obj.age); } // 函数作为参数 function fun(val) { val(); // 调用传入的函数 }小技巧当参数过多时可以将参数封装到一个对象中传递。六、对象中的方法6.1 方法的定义如果一个函数作为对象的属性保存那么这个函数被称为这个对象的方法method。let per new Object(); per.name jack; // 创建方法 let sayHello function () { console.log(hello); }; // 将函数作为对象的属性值方法 per.sayHello sayHello; // 调用方法 per.sayHello(); // 输出hello6.2 对象的完整结构let per new Object(); per.name jack; per.age 18; let money new Object(); money.num 1000; money.house 大平层; per.money money; // 对象嵌套 per.sayHello function () { // 方法 console.log(hello); };总结本文系统梳理了JavaScript中对象和函数的核心知识对象一组无序的相关属性和方法的集合比数组更适合表达结构化数据。对象的操作通过.和[]两种方式访问属性[]更灵活支持动态变量和特殊属性名。函数的三种创建方式构造函数不常用、函数声明常用、函数表达式匿名函数。参数传递形参接收实参的值实参可以是任意数据类型包括对象和函数。对象的方法函数作为对象的属性时称为方法。掌握这些内容你就具备了使用对象和函数组织代码的能力。

相关新闻

中兴光猫工厂模式解锁神器:zteOnu工具完全指南

中兴光猫工厂模式解锁神器:zteOnu工具完全指南

中兴光猫工厂模式解锁神器:zteOnu工具完全指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾经想要完全掌控家中的中兴光猫设备,却苦于无法进入高级配…

2026/10/24 6:51:21 阅读更多 →
Mermaid在线编辑器完全指南:5分钟从零到精通的高效图表制作

Mermaid在线编辑器完全指南:5分钟从零到精通的高效图表制作

Mermaid在线编辑器完全指南:5分钟从零到精通的高效图表制作 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-e…

2026/10/25 2:52:49 阅读更多 →
Linux Shell环境配置文件加载机制详解

Linux Shell环境配置文件加载机制详解

1. Shell环境配置文件基础认知在Linux/Unix系统中,环境配置文件的加载机制就像一套精密的齿轮传动系统。作为系统管理员,我经常看到新手被/etc/profile、.profile和.bashrc这三个文件搞得晕头转向。它们虽然都是bash shell的配置文件,但加载时…

2026/10/25 13:23:05 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/27 17:33:32 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/27 18:20:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 13:55:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 19:19:37 阅读更多 →