0

いくつかの概念の理解が不足しているため、またこのコードの説明が正確かどうかを確認するために投稿しています。

まず、contactForm という親オブジェクトを作成しました。このオブジェクトを、リテラル表記を使用するオブジェクト リテラルと同等にしました。つまり、{ } で新しいオブジェクトを作成し、括弧内にプロパティを定義します。

次に、init メソッドがあります。オブジェクト指向プログラミングに精通している場合は、コンストラクター メソッドと同じものになります。

次の部分は、私が混乱している場所です。ボタンタグである新しい要素を作成するためにjQueryを使用しています。この新しく作成された要素は、contactForm という親オブジェクト内のオブジェクトですか?

2 番目の質問は、テキストを「Contact Me!」に設定するパラメーターを渡しているかどうかです。contactForm オブジェクトまたはボタン要素/オブジェクトに?

最後の質問です。オブジェクトに渡されたパラメーターを、そのオブジェクトのプロパティと呼ぶこともできますか?

用語の説明が不十分であったり、正確でなかったりした場合は申し訳ありません。簡潔で明確に説明された回答は、非常に高く評価されます。

var contactForm = {
        init: function() {

            $('<button></button>', {
                text: 'Contact Me!'
            })
                .insertAfter('article:first');
        }
    }; 
4

1 に答える 1

2

まず、contactForm という親オブジェクトを作成しました。このオブジェクトを、リテラル表記を使用するオブジェクト リテラルと同じにしました。つまり、{ } で新しいオブジェクトを作成し、括弧内にプロパティを定義します。

オブジェクトリテラルによってコードに記述されているオブジェクトがあり、それを変数に割り当てますcontactForm。なぜそれを「親」と呼ぶのかわかりません。

次に、init メソッドがあります。オブジェクト指向プログラミングに精通している場合は、コンストラクター メソッドと同じものになります。

オブジェクトには、関数である「init」という名前のプロパティがあります。これは、便宜上「メソッド」と呼ばれます。ただし、JavaScript のコンストラクターの動作は少し異なります。すべての関数は、newoperatorで呼び出されたときにオブジェクトを構築できます。もちろん、シングルトン インスタンスが (リテラルとして) 宣言されている場合は、初期化専用のメソッドがよく使用されます。

次の部分は、私が混乱している場所です。ボタンタグである新しい要素を作成するためにjQueryを使用しています。この新しく作成された要素は、contactForm という親オブジェクト内のオブジェクトですか?

いいえ。関数で行っていることは、 (最初は)オブジェクトinitとは何の関係もありません。contactForm関数を呼び出しており、メソッドjQueryを呼び出したオブジェクトを返しますinsertAfter。その関数の結果で何もしないので、ガベージコレクションされます。

2 番目の質問は、テキストを「Contact Me!」に設定するパラメーターを渡しているかどうかです。contactForm オブジェクトまたはボタン要素/オブジェクトに?

文字列とオブジェクトの 2 つのパラメーターを渡します。これらの引数で jQuery 関数が何をするかは、コードでは不明です。ドキュメンテーション(そして、本当に掘り下げたい場合はコード) によると、これによりbutton(jQuery インスタンスにラップされた) 要素が作成され、そのtextメソッドが呼び出されます。

最後の質問です。オブジェクトに渡されたパラメーターを、そのオブジェクトのプロパティと呼ぶこともできますか?

いいえ。パラメータを関数に渡します。関数がそれらを返されたオブジェクトのプロパティとして設定することがありますが、それは関数によって異なります。とにかく、それらは「関数オブジェクトのプロパティ」とは呼ばれません。

于 2012-09-28T12:01:42.387 に答える