2012-07-21 46 views
-1

在JSHint各種問題,我得到的消息follwing我的數組聲明:在JSHint

jesuschrist["eng_male"] = [//tons of arrays here]; 

[ 'baby_jesus']比較好寫的點號。

是不是說我應該把它寫成baby.jesus


而且,我聲明對象時,給了我一個問題:

jesuschrist = new Object(); 

JSHint這樣說:

使用對象的文字符號{}。

+0

請在將來選擇更適合的「無意義」的變量名稱。 – 2014-04-01 02:27:07

回答

2

它表明你的代碼更改爲:

jesuschrist = {}; 
jesuschrist.eng_male = [//tons of arrays here]; 
+0

謝謝!爲什麼點表示法更好呢? – 2012-07-21 13:01:38

+0

3個字以內,看起來更好。 – 2012-07-21 13:04:11

+0

它更乾淨,它強調你正在處理一個對象而不是一個關聯數組(儘管它的行爲就像一個!)。 – JohnnyHK 2012-07-21 13:07:29

0

jShint告訴你使用做記號,因爲你要去跟一個字符串(這是靜態的)財產。因爲屬性標識符不會改變。

jesuschrist.eng_male //this wont change 

可以訪問使用[]的對象的屬性,但然後傳遞屬性名作爲變量(其可以是動態的)

var prop = "eng_male"; 
jesuschrist[prop]; //this might be changed, depends on the prop value. 

兩個給出的例子是確定與JsHint。

+0

那麼,我無法改變這個值?這是一個變量。一個變量用於人類,而不是用於計算機(變量名稱可以被人類看到,但不能被計算機看到,人類也可以看到像計算機這樣的值) – 2012-07-21 17:05:35

+0

你可以改變它,它只是編譯器如何解釋你的代碼。當編譯器進入jesuschrist.eng_male時,eng_male已經是您想要獲得的屬性的名稱(因此它是'靜態')。如果編譯器到達jesuschrist [prop];道具可能是你想要的任何東西(因此是動態的)。實際上屬性名稱是靜態文字時,對[]使用動態訪問屬性是一個冗餘操作。這就是爲什麼JsHint說「最好用點符號來寫..」。 – 2012-07-21 19:23:25

+0

更有意義。而Closure編譯器將我的代碼作爲0字節! – 2012-07-21 19:43:03