2017-11-18 68 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

*好接近,因为它得到

相关问题