2016-10-26 39 views
-1

這個例子是從disallow duplicate keys in object literals (no-dupe-keys) coppied:我們是否需要ESLint中的「檢查重複密鑰」規則?

var foo = { 
    bar: "baz", 
    bar: "qux" 
}; 

當我們把它叫做:

alert(foo['bar']); 

字符串qux將被拋出。這也意味着,foo['bar'] = "baz"已被覆蓋,並且無法分配給它。所以,你應該刪除它。

好嗎?

我再舉一個例子:

let element = $('<span/>').text('Hi!'); 
element.css({ 
    display: '-webkit-box', 
    display: '-moz-box' 
}); 

好,display: '-webkit-box'將被覆蓋,無法分配,也?

不,它在Chrome上很有用,-moz-box將用於FF。所以,他們是不同的。

然後,規則正在打破...

是否應該編輯未來?

+2

你的第二個例子總是使用-moz-box顯示屬性,而不是第一個。 ***甚至在鍍鉻。***沒有任何情況下沒有這個規則會比有它更有用。 –

回答

1

是的,我們[需要這個規則]。

在一個對象中重新賦值是最好的方法,它最終是無用的和誤導性的,最糟糕的是它是一個徹底的錯誤。

你的第二個例子仍然是一個普通的老JS對象,你正在覆蓋display