Jshint vs. Closure |动态属性

时间:2012-09-04 21:48:08

标签: javascript jslint google-closure

这是我开始发现奇数静态代码分析的地方。

Google Closure给我这个错误

// using dot notation
JSC_INEXISTENT_PROPERTY:

当我使用点表示法访问动态创建的对象属性时(即没有明确创建属性)

当我使用括号表示法时,错误消失但现在jshint.com会抛出错误:

// using bracket notation
['tag'] is better written in dot notation.

我知道这些警告/错误只是提示编写更好的代码......但它们相互矛盾。

以下是违规行:

vDomTagAdd(bookmark_object.tag);

相关

Extern File Suggestion

1 个答案:

答案 0 :(得分:2)

这是两个不同的警告。 Closure认为此属性不存在,因为它找不到创建它的点。我假设您可以以某种方式告诉Closure这个属性是动态的,并且您确定它存在。

JSHint只是给你一个风格警告,除非你绝对必须使用括号,否则最好使用点符号,但它不会猜测你的属性是否被定义。