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

はい{}は、book オブジェクトの contents プロパティに割り当てられている JavaScript の空のオブジェクトです。

ここで、 toString()などのオブジェクトでグローバルに定義された関数を使用できることがわかります

于 2013-11-01T09:01:33.360 に答える
1

book変数の定義方法を見てください。オブジェクト宣言です。最後の行で、contents という名前のプロパティを追加し、 book とまったく同じ方法で宣言されたオブジェクトに割り当てますが、これにはプロパティがなく、したがって空のオブジェクトです。{}

于 2013-11-01T09:02:30.410 に答える
1

中括弧{ }表記は、オブジェクト リテラルを示します。

それらの間に何もないという事実は、(基本オブジェクトから継承された) 空のオブジェクトを指す新しいオブジェクト参照がbook.contentsプロパティに格納されることを意味します。

于 2013-11-01T09:02:37.177 に答える
1

{}空のオブジェクトを作成します。このオブジェクトは、によって定義されたものと同じ新しいプロパティを持つことができるようになりましたbook.author="flanagan";

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

彼は、それ自体が空contentsのオブジェクトであるオブジェクトのと呼ばれる新しいプロパティを追加しています。book

これは、視覚化するのに役立つように、彼が変更を加えたときにどのように見えるかの構造です。

var book = {
    topic: "javascript",
    fat: true,
    author : "flanagan",
    contents : {}
};
于 2013-11-01T09:02:54.103 に答える
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 に答える