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中的错误
Visual Studio 2013 - Web 项目上的 JSLint.NET 安装不显示预期的 Jslint 菜单选项
jslint 错误 - #1 预期为 '(end)' 而看到的是 '<!'