JavaScript面向对象:成员与共享变量探索
102 浏览量
更新于2024-08-30
收藏 80KB PDF 举报
在JavaScript中,面向对象编程(Object-Oriented Programming, OOP)是其核心特性之一。本文主要探讨了两个关键概念:对象成员和共享成员变量,并通过实例代码进行深入剖析。
首先,让我们看一个对象成员实验的例子。在这个代码片段中,我们定义了两个函数:`f` 和 `o`,以及一个构造函数 `Man`。`f` 是一个普通函数,`this.a` 是对象成员,但因为是在函数内部声明,外部无法直接访问,实际上它指向全局对象(如浏览器中的`window.a`)。`o` 的 `ff` 函数内,局部变量 `a` 与对象成员 `this.b` 有所区别,`this.b` 被赋予了特定值,所以可以被 `o` 实例访问。
`Man` 构造函数创建了一个实例,其原型上定义了 `sex` 和 `name` 方法。这里演示了使用 `this` 关键字,它在函数上下文中表示当前对象。第一个断点处,`this` 在 `Man` 构造函数内部,因此 `this.age` 存在于 `m` 对象,而 `this.sex` 和 `this.name` 是原型上的方法,共享于所有 `Man` 实例。
第二个实验涉及到对象共享成员变量。`Ghost` 类通过 `setName` 方法修改 `name` 属性,表明可以更新共享的实例变量。`Man` 类中,`ManGhost` 是一个共享变量,当创建 `Man` 的多个实例时,它们都共享同一个 `Ghost` 实例。在代码执行到第一处断点时,可以看到 `a` 和 `b` 实例的 `ManGhost` 对象的 `name` 属性已被 `a` 的实例设置。
在第二个断点处,我们对比了简单变量 `a.ghost`、`b.ghost` 和 `b.ManGhost` 的区别。`a.ghost` 和 `b.ghost` 是各自实例对应的 `Ghost` 对象,而 `b.ManGhost` 表示的是 `b` 实例所共享的 `ManGhost` 对象。这个例子展示了JavaScript中对象的动态性和共享性,以及原型链在实例化过程中的作用。
总结起来,本文主要讨论了JavaScript中的对象成员和共享成员变量的概念。对象成员是特定对象的属性,可以通过 `this` 关键字在构造函数或原型上定义;而共享成员变量则是多个对象共用的属性,通过原型链实现。理解这些概念有助于开发者更好地利用JavaScript的面向对象特性,创建高效、灵活的程序。
2021-09-30 上传
2021-09-30 上传
2021-04-07 上传
2021-02-11 上传
2021-09-30 上传
2021-09-30 上传
2021-09-30 上传
2021-02-05 上传
点击了解资源详情
weixin_38557727
- 粉丝: 5
- 资源: 907
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析