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/7/24 19:17:46 阅读更多 →
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/7/24 19:17:46 阅读更多 →
Linux Shell环境配置文件加载机制详解

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

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

2026/7/24 19:17:46 阅读更多 →

最新新闻

免费开源!AMD Ryzen超频调试工具SMUDebugTool终极指南

免费开源!AMD Ryzen超频调试工具SMUDebugTool终极指南

免费开源!AMD Ryzen超频调试工具SMUDebugTool终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

2026/7/24 19:25:48 阅读更多 →
HarmonyOS应用开发实战:萌宠日记 - 菜单列表与 Divider 分隔

HarmonyOS应用开发实战:萌宠日记 - 菜单列表与 Divider 分隔

HarmonyOS应用开发实战:萌宠日记 - 菜单列表与 Divider 分隔 前言 菜单列表 是个人主页中的导航入口集合,包含 我的宠物、收藏、草稿箱、回收站、数据备份、设置、帮助与反馈 等功能入口。在 萌宠日记 的 ProfilePage 中,菜单项使用 ForEach…

2026/7/24 19:25:48 阅读更多 →
Grok 4.5全平台上线:当AI越来越“聪明“,“在场感“为什么反而成了稀缺品?

Grok 4.5全平台上线:当AI越来越“聪明“,“在场感“为什么反而成了稀缺品?

Grok 4.5全平台上线:当AI越来越"聪明","在场感"为什么反而成了稀缺品? 7月24日,xAI正式发布并全量推送了Grok 4.5。从网页端到X平台,再到iOS与Android应用,这款被官方称为"目前最…

2026/7/24 19:25:48 阅读更多 →
两亿AI有了“身份证“:当智能体学会互联互通,人机交互的最后一寸拼图在哪?

两亿AI有了“身份证“:当智能体学会互联互通,人机交互的最后一寸拼图在哪?

两亿AI有了"身份证":当智能体学会互联互通,人机交互的最后一寸拼图在哪? 7月24日,中关村正式发布了全球首个系统性AI智能体互联标准体系——GB/Z185-2026。这七项指导性国标的核心动作,是给每一个AI智能体分…

2026/7/24 19:25:48 阅读更多 →
Full Page Screen Capture:一站式完整网页截图解决方案深度解析

Full Page Screen Capture:一站式完整网页截图解决方案深度解析

Full Page Screen Capture:一站式完整网页截图解决方案深度解析 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chr…

2026/7/24 19:25:48 阅读更多 →
Grok 4.5登顶VulcanBench:AI编程助手从刷分到实用的技术突破

Grok 4.5登顶VulcanBench:AI编程助手从刷分到实用的技术突破

如果你最近在关注 AI 编程助手领域,可能会注意到一个现象:各大模型都在争相宣称自己在某个编程基准测试中取得了“最佳成绩”。但当你真正把这些模型用到日常开发中时,却常常发现基准测试的高分与实际编码体验之间存在明显落差。这正是今天要…

2026/7/24 19:24:47 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻