2017-11-18 356 views
-1

例如,我有這樣的代碼:如果變量未在Javascript中聲明,會發生什麼情況?

var Player = function(param){ 
    var self = { 
    x:0, 
    y:0, 
    spdX:0, 
    spdY:0, 
    id:"", 
    } 
    self.hp = 24; 
} 

我需要裏面添加VAR self = {}馬力?

+1

不......你在做什麼是標準的做法。您可以在聲明對象之後添加屬性 – charlietfl

+0

唯一的問題是,如果在整個代碼中定義它們,那麼跟蹤哪些屬性和對象具有哪些屬性會變得很麻煩。但是這對於閱讀代碼的人來說是一個問題 - javascript不會抱怨。 –

+0

你的問題是不正確的。當您填充它時,該屬性被「聲明」。這是如何完成的。只要您想將屬性添加到已定義的對象,就可以做到這一點。你不使用'var'作爲對象屬性。 –

回答

1

我相信別人誤解了這個問題。如果我理解正確,那麼您正在詢問有關將屬性動態添加到現有對象的任何潛在問題(與首次聲明對象時相比)。答案是,這很好,是常見的JS練習,應該沒有負面的性能影響。

如果您來自靜態類型的語言背景,這是一個完全合理的問題。例如,在TypeScript中,在定義了對象後,您無法將其添加到對象中(請參閱this question)。

  1. 類型安全(遙遙領先的主要原因)

  2. 性能(可能):這是完成的。

+0

但問題不在於typeScript。 – charlietfl

+1

@charlietfl我澄清了我的答案的第一部分。但是,我的意圖僅僅是使用TypeScript作爲示例來確認問題的有效性,這恰好是JavaScript的超集。 – davidchappy

1

沒有

這是完全正常的。放鬆。你的代碼不會爆炸。呼吸。呼吸!好吧,現在你已經安頓下來了...

表現明智,它是相同的*:Performance test

語法明智的,他們都在各大網站的文檔使用:developer.mozilla.org & W3Schools

*好接近,因爲它得到

相關問題