我正在研究别人的Javascript以学习一些新的概念,但有一些我不理解的东西。由于搜索符号相当困难,
是什么var s = {};
意思?这是一个什么样的对象?之后,该人声明了该对象的自定义属性,但我无法弄清楚他们在哪里获得这些属性。
s.JQ = null;
s.myUnsafeWindow = null;
我在Javascript中查找了关于自定义类的所有文档,但找不到任何有助于理解这一点的文档。
如果我提供的答案无法解答,请告诉我,我会发布完整的代码。
答案 0 :(得分:4)
var s = {};
是什么意思?
对于“分配对象的新实例(不给它任何额外的属性)而言object literal syntax”。
我无法弄清楚他们在哪里获得这些属性
这两个陈述是创建它们。在评估属性之前,这些属性不存在。
答案 1 :(得分:2)
其他人已经解释了该声明的含义以及该属性的发生情况。
我想通过更深入一点来增加这一点。
var s = {};
与:
相同var s = new Object;
javascript对象上的dot
符号以独特的方式运行。它将首先检查对象是否已经具有该名称的属性(javascript对象中的属性必须具有唯一名称),如果它已经访问该属性。
所以,如果我们这样做:
var s = {
JQ : 'Jquery!'
};
然后做了这个:
s.JQ == 'Jquery!'; //returns true
s.JQ = null;
s.JQ == 'Jquery!'; //returns false
如果对象没有该属性,但它会将该属性创建为对象的新属性。
因此,如果我们声明这样的对象:
var s = {};
然后使用这两个属性
s.JQ = null;
s.myUnsafeWindow = null;
然后我们只看一下我们会看到的对象s
:
s = {
JQ : null,
myUnsafeWindow : null
}
s
现在有两个我们可以访问或修改的属性。
答案 2 :(得分:1)
var s = {}
将s
声明为空对象。然后,您可以随意附加属性。然后可以将这些属性作为s.property