重复属性¶
ID: js/duplicate-property
Kind: problem
Security severity:
Severity: warning
Precision: very-high
Tags:
- maintainability
- external/cwe/cwe-563
Query suites:
- javascript-security-and-quality.qls
在 ECMAScript 2015 及更高版本以及 ECMAScript 5 非严格模式中,对象文字可以多次定义同一个属性,后面的定义会覆盖前面的定义。如果所有定义都将相同的值赋予该属性,这在运行时不会导致问题,但会使代码更难阅读和维护。
建议¶
消除多余的重新定义。
示例¶
在以下示例中,传递给方法 css
的对象文字有两个属性 backgroundColor
的定义,都将它设置为值 "orange"
。
$(".alert").css({
backgroundColor: "orange",
fontWeight: "bold",
backgroundColor: "orange"
});
第二个定义是多余的,应该删除
$(".alert").css({
backgroundColor: "orange",
fontWeight: "bold"
});
参考文献¶
Ecma 国际,《ECMAScript 语言定义》,第 5.1 版,附录 C。ECMA,2011 年。
Ecma 国际,《ECMAScript 语言定义》,第 6 版,附录 E。ECMA,2015 年。
常见弱点枚举:CWE-563。