2016-06-27 9 views
3

私は2つの質問があります、私にいくつかのアドバイスを与えてください。関数オブジェクトをjQueryのものに似たようにするにはどうすればいいですか?

jQueryの仕組みを調べようとしています。コードを読んだあと、jQueryはその関数オブジェクトから単にthisを返すことに気付きました。行2975の周りに簡単な例があります。

だから、以下のコードのようになります。あなたが見ることができるように、jQueryのでjQueryを持っていない

enter image description here

、私はコンソールをチェックしたときに約しかし

var a = new function a () { 
     return this; 
    }; 
a[0] = document.querySelectorAll('div#1') ; 

console.log(a) 

var b = new function () { 
     this[0] = document.querySelectorAll('div#1') ; 
     return this; 
    }; 

console.log(b) 

console.log(jQuery('#1')) 

オブジェクトの前にあり、オブジェクトは[ ]で引用された配列のようなもので、プロトタイプはObject[0]です。

および__proto__: Object[0]には、constructorがありません。

私の質問は、jqueryが関数名の前に新しい関数インスタンスを作成する方法と、これは何ですか?__proto__: Object[0]

ありがとうございました!

+1

あなたは無名関数/オブジェクトがどのようなものか知っています...私は間違っている場合はお知らせくださいinsteadof Object[0]

ですか? – madalinivascu

+0

@madalinivascu anonymous関数/オブジェクトは前面に 'Object'を表示します! – Till

+0

あなたはどのバージョンのjQueryを使用していますか?あなたがラインと呼んでいるものを見つけようとしています。2975 –

答えて

0

私はようやく彼らがそれをやった方法を発見しました。

$(this)または$(selector)が実際に返すオブジェクトです。私はまだ一部のjQueryがそうする見つけるcouldntのが、彼らがやっていることは上記のjQueryのように似たオブジェクトを返します

var a = new function a () { 
     return this; 
    }; 

var b = [ document.querySelectorAll('div#1') ] ; 

b.__proto__ = new a; 


console.log (b) 

を下回るようなものです。

差がb.__proto__

関連する問題