应当这样编写 JavaScript 代码吗?
您已经看到JavaScript可以很好地支持面向对象的编程。尽管它是一种基于原型的语言,但它的灵活性和强大功能可以满足在其它流行语言中常见的基于类的编程风格。但问题是:是否应当这样编写JavaScript代码?在JavaScript中的编程方式是否应当与C#或C++中的编码方式相同?是否有更聪明的方式来模拟JavaScript中没有的功能?每种编程语言都各不相同,一种语言最佳的做法,对另一种语言而言则可能并非最佳。
在JavaScript中,您已经看到对象继承对象(与类继承类不同)。因此,使用静态继承层次结构建立很多类的方式可能并不适合JavaScript。也许,就像Douglas Crockfork在他的文章Prototypal Inheritance in JavaScript中说的那样,JavaScript编程方式是建立原型对象,并使用下面的简单函数建立新的对象,而后者则继承原始对象:
function object(o)
{
function F()
{
F.prototype = o;
return new F();
}
}
然后,由于JavaScript中的对象是可延展的,因此可以方便地在创建对象之后,根据需要用新字段和新方法增大对象。
这的确很好,但它不可否认的是,全世界大多数开发人员更熟悉基于类的编程。实际上,基于类的编程也会在这里出现。按照即将颁发的ECMA-262规范第4版(ECMA-262是JavaScript的官方规范),JavaScript2.0将拥有真正的类。因此,JavaScript正在发展成为基于类的语言。但是,数年之后JavaScript2.0才可能被广泛使用。同时,必须清楚当前的JavaScript完全可以用基于原型的风格和基于类的风格读取和写入JavaScript代码。
展望
随
着交互式胖客户端 AJAX 应用程序的广泛使用,JavaScript 迅速成为 .NET
开发人员最重要的工具之一。但是,它的原型性质可能一开始会让更习惯诸如 C++、C# 或 Visual Basic
等语言的开发人员感到吃惊。我已发现我的 JavaScript
学习经历给予了我丰富的体验,虽然其中也有一些挫折。如果本文能使您的体验更加顺利,我会非常高兴,因为这正是我的目标。
分享到:
相关推荐
《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。本书内容涵盖了编码风格、编程技巧、自动化、测试等几方面...
《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。本书内容涵盖了编码风格、编程技巧、自动化、测试等几方面...
3.1 我能用什么来编写脚本--适合编写JavaScript的文本编辑器 3.2 来自浏览器的支持 3.3 集成开发环境 3.4 调试工具--提升开发效率的利器 3.5 定位代码和调用堆栈 3.6 浏览器捕获异常 3.7 ...
正如我在另一篇文章 JavaScript 整洁代码的最佳实践里提到的,你写的代码不单单是给机器看的,还是给“未来的自己”以及“其他人”看的。 从另一方面来说,由于各式各样的原因,可能我们的代码最终还是会有条件式。...
代码如下: /* 1.jQuery插件文件名推荐命名为 jquery.[插件名].js 以免和其他javascript库插件混淆。例如命名为jquery.color.js 2.所有的对象方法名都应当附加到jQuery.fn对象上而所有的全局函数都应当附加到...
完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算...
Puppeteer本身是个NodeJS的库,自动化脚本也需要使用NodeJS编写,如果对JS不了解建议先学习JavaScript基础语法,或者使用Selenium等其他工具去实现。 对于一个陌生的工具,应当先检查是否适合自己,再去尝试使用,...
这种早期的设想就是让应用程序由包含编译代码的大块实体和一小部分用于进行配置和编写高级命令的Tcl代码组成。John的编辑器皿,还有终端仿真程序tx就遵循了这种模式。虽然这种模式仍然是有效的,但结果表明用Tcl来...
程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。 程序(港台称之为程式) program(me)或procedure chéng xù 概念1.:为进行某活动或过程所规定的途径。 概念2.程序...
一个非常重要的熟食店需要有人为其计数器编写“取号”功能。 在一天的开始,熟食店是空的,用空数组表示,例如var katzDeliLine = []; 。 但是,您不需要将数组编码为变量,因为测试脚本将创建该数组并将其传递给要...