1

这是一个代码示例,来自一本名为JavaScript: The Definitive Guide, 6th Edition的书,我不明白。

他在谈论对象。

var book ={
    topic: "javascript",
    fat: true
};
book.topic              => "javascript"
book.["fat"]            => True
book.author="flanagan"; // creates new property
book.contents= {};      // empty object*

所以我不明白的是最后一部分。他是否添加了一个名为“contents”的新属性,它是空的?因为他称它为对象,这让我很困惑。

4

8 回答 8

2

Yes{}是 javascript 中的一个空对象,它被分配给 book 对象的 contents 属性。

在这里您可以看到我们可以使用在对象上全局定义的函数,例如toString()

于 2013-11-01T09:01:33.360 回答
1

在 JavaScript 中,您可以使用 {} 表示法创建一个对象,称为对象字面量,并且您可以在未来通过点(甚至是函数)向该对象添加任何您想要的内容,在第一步的示例中:

var book ={topic: "javascript",fat: true};

book 对象是用两个属性topicfat来创建的,然后这个对象被扩展为author作为 String 和contents作为一个内部对象,正如我所说的你可以用它来创建空对象 (var t={} //example); 如果你使用

typeof book.contents // returns "object"

于 2013-11-01T09:13:33.580 回答
1

{}创建一个空对象。意味着现在这个对象可以具有与定义相同的新属性book.author="flanagan";

// Both are same
book.contents = new Object();
book.contents = { } ;
于 2013-11-01T09:06:11.533 回答
1

看一下book变量的定义方式。它是一个对象声明。在最后一行,我们添加了一个名为 contents 的属性,并为它分配了一个与 book 完全相同的对象,除了这个没有属性,因此是一个空对象:{}

于 2013-11-01T09:02:30.410 回答
1

花括号{ }表示法表示对象字面量。

它们之间没有任何内容的事实意味着指向空白对象(从基础对象继承)的新对象引用存储在book.contents属性中。

于 2013-11-01T09:02:37.177 回答
0
<script type="text/javascript">

        var book ={
            topic: "javascript",
            fat: true
        };


        book.topic = "javascript";
        book.fat = true;
        book.author = "flanagan"; // creates new property
        book.contents = {};      // empty object*
        //The curly bracket { } denotes here an object.
        //will add a property contents and will contain an empty object

        alert(book.contents);   //it will display [object Object]

        book.contents.name = 'Success Stories';
        //adding propertis to the object contents
        alert(book.contents.name);

        /*
        you can consider it as object inside object

        objectOuter {
            property1: value1
            property2: value2
            property3: objectInner {
                property1: value1
                property2: value2
            }
        }
        */       

    </script>
于 2013-11-01T09:16:32.823 回答
0

它正在创建原始book对象的新属性,并将该属性的值设置为新的空对象。

于 2013-11-01T09:01:46.997 回答
0

他正在添加一个名为对象的新属性contents,该对象book本身是一个空对象。

这是他进行更改以帮助您将其可视化时的结构。

var book = {
    topic: "javascript",
    fat: true,
    author : "flanagan",
    contents : {}
};
于 2013-11-01T09:02:54.103 回答