阅读以下问题,我感觉大部分答案都没有理解为什么有些人(比如Crockford)选择不使用 "new" 关键字。这并不是为了防止意外地在不使用 "new" 关键字的情况下调用函数。
根据Crockford关于原型继承的文章,他实现了一种对象创建技术,更清晰地展示了JS的原型性质。这种技术现在甚至已经在JS 1.8.5中实现。
他反对使用 new 的论点可以更清晰地总结为:
“这种间接性旨在使语言对于受过经典训练的程序员更加熟悉,但它没有做到这一点,我们可以从Java程序员对JavaScript的非常低的评价中看出来。JavaScript的构造器模式并没有吸引经典派的程序员。它也掩盖了JavaScript真正的原型性质。因此,很少有程序员知道如何有效地使用这种语言。”
我不一定认为“new”有害,但我同意它确实“掩盖了JavaScript的真正原型性质”,因此我在这一点上同意Crockford的看法。
您对使用更清晰的原型对象创建技术而不是使用 "new" 关键字有何看法?
根据Crockford关于原型继承的文章,他实现了一种对象创建技术,更清晰地展示了JS的原型性质。这种技术现在甚至已经在JS 1.8.5中实现。
他反对使用 new 的论点可以更清晰地总结为:
“这种间接性旨在使语言对于受过经典训练的程序员更加熟悉,但它没有做到这一点,我们可以从Java程序员对JavaScript的非常低的评价中看出来。JavaScript的构造器模式并没有吸引经典派的程序员。它也掩盖了JavaScript真正的原型性质。因此,很少有程序员知道如何有效地使用这种语言。”
我不一定认为“new”有害,但我同意它确实“掩盖了JavaScript的真正原型性质”,因此我在这一点上同意Crockford的看法。
您对使用更清晰的原型对象创建技术而不是使用 "new" 关键字有何看法?