1

私は次のような車のIDでdivを呼び出しています:

var car = $('#car');
console.log(car);

ログに記録すると、コンソールに次のように表示されます。

[div#car, context: document, selector: "#car", jquery: "1.9.0", constructor: function, init: function…]

ログの「コンストラクター:関数」の部分は、関数として保存されていることを示していますか?その場合、オブジェクトとして保存する理由と方法を教えてください。

4

2 に答える 2

1

jQuery は、引数を受け取ると関数のインスタンスを作成します。この場合、要素の ID であるセレクターを送信しました。このセレクターを受け取ると、jquery はnew「内部」jquery 関数でキーワードを使用します。結果は関数オブジェクトです。jQuery関数に発行された結果であるjqueryオブジェクトを使用$またはjQuery要求するたびに。newこのオブジェクトには、セレクターに一致する要素配列や、API へのアクセスを可能にする jQuery のプロトタイプなど、多くのものが関連付けられています。

ですから、明確にするために。オブジェです。関数から構築されました。


編集

これがどのように発生するかを確認するのに役立つサンプル コードを次に示します。

まず、このデモは単純な jquery オブジェクトです: http://jsfiddle.net/PbdCt/

html

<div id="car"></div>

js

var car = $("#car");
console.log(car);

第二に、これは私が書いた例です

html

<div id="car"></div>

js

var $ = (function(){
    var $ = function(sel){
        if( !(this instanceof $) ){
            return new $(sel);
        }
        this.selector = sel;
        this.element = document.getElementById(sel);
        this.constructor = $;
        this.init = function(){ /*init*/ };
    };

    return $;
})();

var car = $("car");
console.log(car);

どちらもほぼ同じことをログに記録していることに気付くでしょう。に魔法はありません$。これは単なる文字列であり、Yis またはjQuery、またはとよく似ていHelloWorldます。

于 2013-02-14T05:49:45.310 に答える
0

いいえ。constructor:function は、jQuery コンストラクター関数が特定のコンテキスト、セレクターで呼び出されることを意味します。jQuery オブジェクトを返します。

現在、car は jQuery オブジェクトです。

オブジェクトの jQuery のすべてのメソッドにアクセスできcarます。

于 2013-02-14T05:52:06.267 に答える