1

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

谷歌关闭给我这个错误

// using dot notation
JSC_INEXISTENT_PROPERTY:

当我使用点符号访问动态创建的对象属性时(即没有显式创建属性)

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

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

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

这是违规行:

vDomTagAdd(bookmark_object.tag);

有关的

外部文件建议

4

1 回答 1

2

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

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

于 2012-09-04T22:01:12.307 回答