JavaScript中仍然不建议使用"new"吗?

Par*_*ris 6 javascript new-operator

所以我看到很多JavaScript代码在制作构造函数时使用"new".阅读部分JavaScript的好零件之后,似乎使用"新"不是猫的睡衣.那是4年前的事了......是不是仍然不推荐?现行标准是什么?

elc*_*nrs 7

从什么时候开始new不推荐?D. Crockford有一个有效的观点和强烈的观点,但它new是该语言的一部分,并且它在许多项目中被广泛使用.new是原型继承模型的一部分,必须用于使用构造函数创建新实例.Crockford指出了一种纯粹的功能方法,它this恰当地使用了上下文,并return this能够继承子对象之间的属性和方法.这是一个常见问题的不同解决方案,但并不意味着new不应该使用它.事实上,有史以来最复制/粘贴的JS片段之一是Crockford's,object.createpolyfill,它使用new:

if (typeof Object.create !== 'function') {
    Object.create = function (o) {
        function F() {}
        F.prototype = o;
        return new F();
    };
} 
Run Code Online (Sandbox Code Playgroud)

  • 他不推荐它,因为它可能会在某些情况下导致混淆,但还有其他一些常见的做法可以避免混淆,例如大写构造函数.关于Crockford不建议使用`++`和` - `,你可以说同样的事情...... (3认同)