JavaScript自定义对象与内置对象扩展
"其它内置对象的扩展-T16.3_JavaScript自定义对象与扩展 java 经典教程 经典教材" 在JavaScript中,面向对象编程是一种重要的编程范式,尽管它与Java或C#等基于类的语言有所不同。JavaScript采用的是prototype-based(基于原型)的面向对象模型,这意味着它没有传统意义上的类,而是通过构造函数和原型来创建和扩展对象。 在JavaScript中,对象是属性和方法的集合,它们可以通过字面量语法或者构造函数来创建。例如,构造函数`Person`可以用来创建表示人的对象: ```javascript function Person(name) { this.name = name; } var newPerson = new Person('张三'); console.log(newPerson.name); // 输出 '张三' ``` 在这个例子中,`Person`是一个构造函数,`newPerson`是通过这个构造函数创建的对象,它的`name`属性被初始化为'张三'。 当我们谈论对象的扩展时,通常涉及到原型(prototype)。每个JavaScript对象都有一个内部`[[Prototype]]`链接,通常通过`__proto__`或`Object.getPrototypeOf`访问,或者通过`prototype`属性来操作(当讨论构造函数时)。 在给定的描述中,提到了利用`prototype`属性扩展内置对象如`String`的例子: ```javascript var objMessage = new String("javascript"); String.prototype.reverse = reverse_string; String.prototype.even = even_string; ``` 这里,我们为`String`对象添加了两个新方法:`reverse_string`和`even_string`。这样,所有`String`对象实例都可以使用这两个新方法。例如,`objMessage.reverse()`将返回`javascript`的反向字符串,而`even_string`可能检查字符串中的字符是否都是偶数。 JavaScript的原型链允许对象共享属性和方法,提高了代码的复用性。当尝试访问对象的一个属性或方法时,如果该对象自身没有这个属性,JavaScript会向上查找其原型,直到找到属性或到达原型链的顶端(通常是`null`)。 此外,我们还可以使用`Object.create`方法来创建一个新的对象,使其具有指定原型: ```javascript var newObj = Object.create(anExistingObject); ``` 这使得`newObj`继承了`anExistingObject`的所有属性和方法。 总结一下,JavaScript的面向对象特性包括构造函数、原型和原型链,这些机制让我们能够灵活地创建和扩展对象,无论是自定义对象还是内置对象。通过理解和运用这些概念,开发者可以构建出更复杂、更具有复用性的代码。
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/f314b1a81b97400f839c4456aee96e83_weixin_42193786.jpg!1)
- 粉丝: 23
- 资源: 2万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 新型矿用本安直流稳压电源设计:双重保护电路
- 煤矿掘进工作面安全因素研究:结构方程模型
- 利用同位素位移探测原子内部新型力
- 钻锚机钻臂动力学仿真分析与优化
- 钻孔成像技术在巷道松动圈检测与支护设计中的应用
- 极化与非极化ep碰撞中J/ψ的Sivers与cos2φ效应:理论分析与COMPASS验证
- 新疆矿区1200m深孔钻探关键技术与实践
- 建筑行业事故预防:综合动态事故致因理论的应用
- 北斗卫星监测系统在电网塔形实时监控中的应用
- 煤层气羽状水平井数值模拟:交替隐式算法的应用
- 开放字符串T对偶与双空间坐标变换
- 煤矿瓦斯抽采半径测定新方法——瓦斯储量法
- 大倾角大采高工作面设备稳定与安全控制关键技术
- 超标违规背景下的热波动影响分析
- 中国煤矿选煤设计进展与挑战:历史、现状与未来发展
- 反演技术与RBF神经网络在移动机器人控制中的应用
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)