【问题标题】:jslint: How to suppress 'Expected 'Object.create(null)' and instead saw 'new Object'. warning?jslint:如何抑制'预期的'Object.create(null)',而是看到'新对象'。警告?
【发布时间】:2017-11-28 05:50:46
【问题描述】:

如何避免 jslint 用警告对我大喊大叫

'预期为'Object.create(null)' 而看到的是'new Object'

当使用这行非常简单的代码时:

var myDummyObject = new Object();

?

【问题讨论】:

  • 不知道为什么 jslint 不喜欢这样,但你可以这样做 var myDummyObject = {}; 它可能,通常不像 new Object()new Array() 形式,更喜欢静态声明,如 @987654327 @和[]Object.create(null) 创建一个带有空原型的特殊对象,因此它不会有像 .hasOwnProperty() 这样的方法,这有时很有用,但通常不是必需的。
  • @jfriend00 是的,我知道 jslint 对其他形式很好,只是好奇它为什么特别抱怨那个。
  • 嗯,jslint 是固执己见的,你使用它是因为你想知道它对事物的看法。显然,它认为不应使用new Object()。您看到的问题记录在这里:jslint.com/help.html。它没有说明原因。这里有很多关于它的讨论:What is the difference between new Object() and object literal notation?.

标签: javascript ecmascript-6 jslint


【解决方案1】:

嗯,jslint 是固执己见的,你使用它是因为你想知道它对事物的看法。显然,它认为不应使用new Object()。您看到的问题记录在这里:http://www.jslint.com/help.html。它没有说明原因。

这里有很多关于它的讨论:What is the difference between new Object() and object literal notation?{} 语法比 new Object() 更快更短,这听起来有足够的理由喜欢它。

您显然知道,您可以使用以下任何一种:

var myDummyObject = {};
var myDummyObject = Object.create(null);

后者将创建一个带有空原型的对象,因此它上面不会有像 .hasOwnProperty() 这样的方法,这偶尔有用,但通常不需要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-18
    • 2016-08-21
    • 2013-02-18
    • 2011-10-30
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多