3
<script>

(function() {

$('html').addClass('js');

var contactForm = {

    container: $('#contact'),          <-- THIS COMMA

    init: function() {
        $('<button></button>', {
            text: 'Contact Me'
        })
            .insertAfter('article:first')
            .on('click', this.show);
    },  <---------------------------------- AND THIS COMMA

    show: function() {
        contactForm.container.show();
    }
};

contactForm.init();

})();

</script>

上記のスクリプトで、次のことに気付きました。

container: $('#contact'),

それは変数を宣言する1つの方法ですか?以下を実行すると、スクリプトが壊れます。

var container = $('#contact');

また、init 関数とコンテナー変数 (変数の場合) の後のコンマは何ですか?

4

5 に答える 5

8

このようにして、オブジェクトを宣言します。

var contactForm = {
    // properties:
    property1 : value,
    property2 : value,
    property3 : value,

    // methods:
    method1 : function() {
        // ...
    },
    method2 : function() {
        // ...
    }
};

JavaScript オブジェクトの詳細については、MDN ... および以下のコメントを参照してください:)

于 2012-05-30T20:22:25.510 に答える
3

そのコード ブロック ( で始まるvar contactForm = {) は、オブジェクト リテラル表記を使用してオブジェクトを宣言しています。オブジェクト リテラル表記では、異なるキーと値のペアをカンマで区切ります。

var obj = { key1: value1, key2: value2 };
于 2012-05-30T20:23:13.920 に答える
2

オブジェクトを定義するときに、カンマを使用して名前と値のペアを区切ります。

var newObj = {
  name: value,
  another_name: another_value
};
于 2012-05-30T20:22:48.103 に答える
1

これは、オブジェクトリテラル表記と呼ばれます。

これは基本的に、名前と値のペアのコンマ区切りのリストであり、中括弧で囲まれています。

この表記の利点は、中括弧内のすべてのデータがカプセル化され、グローバルに定義されないことです。これにより、他のスクリプトやライブラリとの競合が回避されます。

于 2012-05-30T20:27:39.647 に答える
1

これらは、コンマで区切られた、定義しkey:valueたオブジェクトのペアですcontactForm

var obj = { key1 : value1, 

            key2 : value2

            method1 : function(){
              // definition
            },
            method2 : function(){
              // definition
            }
}

初期の頃に私を混乱させたのはfunction(){....}、変数 (この場合はオブジェクト) 定義内で行っていることは、関数が js でもオブジェクトであり、以前に使用した言語とは異なる場合があることを発見するまででした。

このfunction(){....}名前のない関数は無名関数と呼ばれます。

ここに無名関数に関する良いスレッドがあります。同じ行で無名関数を呼び出す必要があるのはなぜですか?

于 2012-05-30T20:23:31.427 に答える