这段代码是如何工作的,这是什么类型的对象声明?

时间:2013-04-01 14:32:23

标签: javascript class

我正在研究别人的Javascript以学习一些新的概念,但有一些我不理解的东西。由于搜索符号相当困难,

是什么
var s = {};

意思?这是一个什么样的对象?之后,该人声明了该对象的自定义属性,但我无法弄清楚他们在哪里获得这些属性。

s.JQ = null;
s.myUnsafeWindow = null;

我在Javascript中查找了关于自定义类的所有文档,但找不到任何有助于理解这一点的文档。

如果我提供的答案无法解答,请告诉我,我会发布完整的代码。

3 个答案:

答案 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

进行访问