应当这样编写 JavaScript 代码吗?

探讨了JavaScript的面向对象编程特点,对比了基于类和基于原型的编程方式,并介绍了如何利用原型来实现继承。此外,还讨论了JavaScript的发展趋势,即计划在未来的版本中引入真正的类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应当这样编写 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 学习经历给予了我丰富的体验,虽然其中也有一些挫折。如果本文能使您的体验更加顺利,我会非常高兴,因为这正是我的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值