Javascript empty object

Javascript empty object

本文关键字:object empty Javascript      更新时间:2023-09-26

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

他说的是对象。

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

所以我不明白的是最后一部分。他是否添加了一个名为"内容"的新属性,该属性为空?因为他称它为物体,这让我感到困惑。

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

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

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

表示

{ }大括号表示对象文字。

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

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

// Both are same
book.contents = new Object();
book.contents = { } ;

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

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

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

typeof book.contents // returns "object"

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

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

下面是他进行更改以帮助您可视化它时的外观结构。

var book = {
    topic: "javascript",
    fat: true,
    author : "flanagan",
    contents : {}
};
<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>