Posted: 09 Feb 2015 10:53 PM PST JavaScript 是一种灵活的语言,表达力极强,我来举一个例子,保证让很多人大吃一惊。 本文受到了 Kyle Simpson 的文章《Iterating ES6 Numbers》的启发。 首先,在 Number.prototype 对象上,部署一个 add 方法。
上面代码为 Number 的实例定义了一个 add 方法。(如果你对这种写法不熟悉,建议先阅读我写的《JavaScript 面向对象编程》。) 由于 Number 的实例就是数值,在数值上调用某个方法,数值会自动转为实例对象,所以就得到了下面的结果。
上面代码中,调用方法之所以写成 将数值放在圆括号中,就可以使用点运算符调用方法了。
其实,还有另一种写法。
上面代码的第一个点解释为小数点,第二个点解释为点运算符。为了语义清晰起见,下面我统一采用圆括号的写法。 由于add方法返回的还是数值,所以可以链式运算。
上面代码在Number对象的实例上部署了subtract方法,它可以与add方法链式调用。 如果使用方括号调用属性,写法会很古怪。
我们还可以部署更复杂的方法。
上面代码在 Number 对象的原型上部署了 iterate 方法,可以将一个数值自动扩展为一个数组。 总之,现在我们可以在数值上直接调用方法了,但是后面一对圆括号看着有点碍眼,有没有可能去掉圆括号呢?也就是说,能不能将下面的表达式
写成另一种样子?
这是可以做到的。 ES5规定,每个对象的属性都有一个取值方法get,用来自定义该属性的读取操作。
上面代码在 Number.prototype 上定义了两个属性 double 和 square ,以及它们的取值方法 get 。 因此,在任一数值上,读取这两个属性,就可以写成下面的样子。
也可以改用方括号运算符。
(完) |
- 浏览: 278061 次
- 性别:
- 来自: 北京
相关推荐
JavaScript为Angular提供了运行的基础,而Angular则利用JavaScript的灵活性和广泛接受度,结合TypeScript的强类型和面向对象特性,提供了一种现代的、高效的Web应用开发解决方案。无论是JavaScript开发者还是...
javascript
综上所述,JavaScript以其灵活性和广泛的支持库,成为了现代软件开发中的多面手,无论是在传统的网页开发,还是新兴的领域如移动应用、服务端、桌面应用、游戏、VR/AR、物联网,甚至是操作系统界面,都有其身影。...
此外,它支持多种编程范式,包括面向对象、函数式以及声明式编程,为开发者提供了极大的灵活性。 1. **变量与数据类型**:JavaScript是弱类型语言,变量可以动态地改变其数据类型。它有七种基本数据类型,包括...
此外,JavaScript的灵活性允许开发者选择基于类的继承方式,或者利用原型继承的微妙之处,实现更高效的设计。 4.1 为什么需要继承 继承的主要目的是代码复用和降低耦合度。通过继承,可以在已有类的基础上扩展功能...
JavaScript的灵活性和丰富的库资源使其成为构建物联网解决方案的理想选择。 7. 数据交换:在JavaScript和Arduino之间,数据可以通过串行通信进行交换。JavaScript可以接收来自Arduino的传感器数据,处理后再发送...
- 工厂模式:创建对象时避免使用new操作符,提供更灵活的实例化过程。 - 观察者模式:定义对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 - 代理模式:为...
通过这门课程的学习,使学生对 JavaScript 有一个全面的了解,掌握相关的知识点,在软件设计中能灵活地运用 JavaScript 进行系统开发。职业能力目标:培养学生编写规范化的程序代码,自主的学习能力,良好的与人沟通...
数组作为JavaScript中重要的数据结构,其章节详述了数组的定义、length属性、数组的空位处理以及ECMAScript 5中新增的数组方法(如map、forEach等),这些方法极大地增强了数组操作的灵活性和功能性。 函数章节讲解...
2. **对象和原型**:深入探讨了JavaScript的面向对象特性,包括对象字面量、构造函数、原型链、继承机制等,这是理解JavaScript灵活性的关键。 3. **作用域和闭包**:解析了JavaScript中的变量作用域规则以及闭包的...
本文将对 ArcGIS JavaScript API 进行详细的介绍,并提供多个示例来帮助读者快速上手。 一、ArcGIS JavaScript API 概述 ArcGIS JavaScript API 是一个基于 JavaScript 的开发工具,允许开发者创建交互式的 Web ...
在JavaScript的世界里,源码分析尤其关键,因为JavaScript是动态类型语言,其灵活性和动态特性使得理解和调试代码更加复杂。 首先,我们需要了解JavaScript的基础知识。JavaScript是一种解释型、基于原型的脚本语言...
这份资源大全包括了多个关键领域的内容,如包管理器、加载器、测试框架、运行器、质量保证(QA)工具、MVC框架和库以及模板引擎等。 首先,包管理器是现代JavaScript开发的关键工具,它们简化了依赖管理和项目构建...
这种灵活性使得JavaScript易于上手,但也可能导致一些类型相关的错误,需要开发者有清晰的理解和谨慎的处理。 在JavaScript中,函数是一等公民,可以作为值传递,也可以作为返回值。例如,创建一个简单的函数: ```...
此外,JavaScript是一种解释性脚本语言,提供了比其他语言更加灵活、更加宽松的程序设计环境,程序设计新手在这种环境中能够很快适应。 《JavaScript权威指南》全面介绍了JavaScript语言的核心,以及Web浏览器中...
对象可以通过引用来传递,而不是复制,这种特性使得对象在JavaScript中非常灵活。对象的原型链是JavaScript继承的核心机制,通过__proto__属性或Object.getPrototypeOf方法可以访问原型。 数组是有序的数据集合,...
JavaScript.Net 是一个基于.NET框架...总的来说,JavaScript.Net为.NET开发者提供了一种强大的方式来利用JavaScript的灵活性和广泛的功能,使得两种语言可以更紧密地协同工作,提升了.NET应用程序的可扩展性和创新性。
这种编程风格在JavaScript中尤其常见,因为它提供了高度的灵活性和强大的功能。 在JavaScript中,函数式编程的核心概念包括: 1. **纯函数**:纯函数是指给定相同的输入,始终返回相同输出,并且不产生任何副作用...
这个离线的JavaScript API CHM文件是一个宝贵的开发资源,它包含了大量的函数、方法、对象和类的详细文档,对于深入理解JavaScript的工作原理、提高开发效率非常有帮助。开发者可以在没有网络连接的情况下,快速查找...
使用"org.mozilla.javascript-1.7.2.jar",开发者可以方便地在Java应用程序中嵌入JavaScript代码,实现动态行为或者提供灵活的配置。例如,在Web应用中,可以使用Rhino引擎来解析用户输入的JavaScript代码,进行安全...