所以我看到大量的JavaScript代码在那里,用“新”将构造时。 阅读的JavaScript的部分好的部分之后,似乎用“新”是不是猫的睡衣。 那是3年前,虽然...它仍然不建议? 什么是当前的标准是什么?
Answer 1:
由于当new
不建议? D.克罗克福德有一个正确的观点和强烈的意见,但new
是语言的一部分,这是非常已在许多项目中使用。 new
的原型继承模型的一部分,并且必须使用同一个构造函数创建新实例。 克罗克福德使用指出纯功能的方法this
适当的上下文并return this
能够继承子对象之间的属性和方法。 这是一个不同的解决方案,以一个共同的问题,但并不意味着new
不宜使用。 事实上,最复制/粘贴JS所有时代的片段之一是Crockford的,对object.create
填充工具,并使用new
:
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
Answer 2:
没有2008年以来除了克罗克福德影响的情况有所改观Object.create
:正在进入的ECMAScript 5 new
仍具有相同的行为和缺点道格拉斯克罗克福德有力地指出。 我自己的看法是,他宁可高估的问题,并把对开发商有用的经营者,所以我继续使用它没有问题; 我会建议其他开发人员弥补自己的头脑,而不是盲目地内化和反刍(诚然令人钦佩)克罗克福德。
文章来源: Is “new” still not recommended in JavaScript?