最初の構文:
object.methodName();
methodName()
のプロパティとして定義されている関数 を呼び出すように指示しますobject
。
2 番目の構文:
$('#element').methodname();
$()
(これが機能するために)オブジェクトを返さなければならない呼び出された関数を呼び出し、次にmethodname()
その返されたオブジェクトを呼び出すように言います。
あなたは「双方向の呼び出しが機能している」と言ったので、おそらく次のようなコードがいくつかあります。
var myObject = $('#element');
myObject.methodname();
関数の結果を変数に格納するというこの概念は、$()
一般に jQuery オブジェクトの「キャッシュ」と呼ばれます。jQuery 関数を呼び出すたびに$()
別の jQuery が作成されるため、そのオブジェクトで多くのメソッドを呼び出す場合は、より効率的です。物体。
「コアの JavaScript でも利用できますか?」はい、オブジェクトを返す関数を実装する場合。つまり、JS はこれをサポートしています (jQuery は単なる JS ライブラリであるため、そうする必要があります) が、自動的には行われず、適切な関数コードを作成する必要があります。例えば:
function getObject() {
return {
myMethod1 : function() { alert("myMethod1"); return this; },
myMethod2 : function() { alert("myMethod2"); return this; }
};
}
getObject().myMethod1().myMethod2();
私の意見では、この概念をより深く説明することは、スタック オーバーフローの回答の範囲を超えています。いくつかの JavaScript チュートリアルを読む必要があります。MDN の Working With Objects記事は、JS の基礎を学んだ後に始めるのに適した場所です (オブジェクトを扱うことは JS の基礎であると主張することもできますが、明らかにそれよりもさらに基礎的なことを意味します)。