如果变量未在Javascript中声明,会发生什么情况?
例如,我有这样的代码:如果变量未在Javascript中声明,会发生什么情况?
var Player = function(param){
var self = {
x:0,
y:0,
spdX:0,
spdY:0,
id:"",
}
self.hp = 24;
}
我需要里面添加VAR self = {}
马力?
我相信别人误解了这个问题。如果我理解正确,那么您正在询问有关将属性动态添加到现有对象的任何潜在问题(与首次声明对象时相比)。答案是,这很好,是常见的JS练习,应该没有负面的性能影响。
如果您来自静态类型的语言背景,这是一个完全合理的问题。例如,在TypeScript中,在定义了对象后,您无法将其添加到对象中(请参阅this question)。
类型安全(遥遥领先的主要原因)
性能(可能):这是完成的。
但问题不在于typeScript。 – charlietfl
@charlietfl我澄清了我的答案的第一部分。但是,我的意图仅仅是使用TypeScript作为示例来确认问题的有效性,这恰好是JavaScript的超集。 – davidchappy
没有
这是完全正常的。放松。你的代码不会爆炸。呼吸。呼吸!好吧,现在你已经安顿下来了...
表现明智,它是相同的*:Performance test。
语法明智的,他们都在各大网站的文档使用:developer.mozilla.org & W3Schools
*好接近,因为它得到
不......你在做什么是标准的做法。您可以在声明对象之后添加属性 – charlietfl
唯一的问题是,如果在整个代码中定义它们,那么跟踪哪些属性和对象具有哪些属性会变得很麻烦。但是这对于阅读代码的人来说是一个问题 - javascript不会抱怨。 –
你的问题是不正确的。当您填充它时,该属性被“声明”。这是如何完成的。只要您想将属性添加到已定义的对象,就可以做到这一点。你不使用'var'作为对象属性。 –