jslint:如何抑制'预期的'Object.create(null)',而是看到'新对象'。警告?

Posted

技术标签:

【中文标题】jslint:如何抑制\'预期的\'Object.create(null)\',而是看到\'新对象\'。警告?【英文标题】: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?. 【参考方案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() 这样的方法,这偶尔有用,但通常不需要。

【讨论】:

以上是关于jslint:如何抑制'预期的'Object.create(null)',而是看到'新对象'。警告?的主要内容,如果未能解决你的问题,请参考以下文章

禁止显示“预期为 '===' 而看到的是 '=='。” jslint中的错误

jsLint 预期

Visual Studio 2013 - Web 项目上的 JSLint.NET 安装不显示预期的 Jslint 菜单选项

jslint 错误 - #1 预期为 '(end)' 而看到的是 '<!'

为啥 JSLint 要我使用双引号而不是单引号?预期为 '"' 而看到的是 '''

JSLint 错误:“预期在 EOF 处换行”,与 Beautify 插件冲突