被“新”还没有在JavaScript建议?(Is “new” still not recommend

2019-09-21 02:01发布

所以我看到大量的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?