this
öğedir, $(this)
bu öğeyle oluşturulmuş jQuery nesnesidir
$(".class").each(function(){
//the iterations current html element
//the classic JavaScript API is exposed here (such as .innerHTML and .appendChild)
var HTMLElement = this;
//the current HTML element is passed to the jQuery constructor
//the jQuery API is exposed here (such as .html() and .append())
var jQueryObject = $(this);
});
Daha derin bir bakış
this
MDN bir yürütme bağlamında bulunur
Kapsam, geçerli Yürütme Bağlamı ECMA'yı ifade eder . Anlamak için this
, yürütme bağlamlarının JavaScript'te nasıl çalıştığını anlamak önemlidir.
yürütme bağlamları bunu bağlar
Denetim bir yürütme bağlamına girdiğinde (kod bu kapsamda yürütülür) değişkenler için ortam ayarlanır (Sözlüksel ve Değişken Ortamlar - esas olarak bu, girilebilen değişkenler için bir alan ve yerel değişkenler için bir alan oluşturur. saklanır) ve bağlanması this
meydana gelir.
jQuery bunu bağlar
Yürütme bağlamları mantıksal bir yığın oluşturur. Sonuç, yığının derinliklerindeki bağlamların önceki değişkenlere erişebilmesidir, ancak bağları değişmiş olabilir. JQuery her geri çağırma işlevi çağırdığında, apply
MDN kullanarak bu bağlamayı değiştirir .
callback.apply( obj[ i ] )//where obj[i] is the current element
Arama sonucu apply
olduğunu jQuery geri arama fonksiyonların içinde this
mevcut element anlamına gelir geri arama fonksiyonu tarafından kullanılır.
Örneğin, içinde .each
, yaygın olarak kullanılan geri arama işlevi izin verir .each(function(index,element){/*scope*/})
. Bu kapsamda this == element
doğrudur.
jQuery geri çağrıları, çağrılan işlevi geçerli öğeyle bağlamak için uygula işlevini kullanır. Bu öğe, jQuery nesnesinin element dizisinden gelir. Oluşturulan her jQuery nesnesi , jQuery nesnesini örneklemek için kullanılan seçici jQuery API'siyle eşleşen bir dizi öğe içerir .
$(selector)
jQuery işlevini çağırır (unutmayın , kod: $
için bir başvurudır ). Dahili olarak, jQuery işlevi bir işlev nesnesini başlatır. Bu yüzden dahili kullanımları kullanarak hemen belli olmasa da . Bu jQuery nesnesinin yapısının bir kısmı, seçicinin tüm eşleşmelerini bulmaktır. Yapıcı ayrıca html dizelerini ve öğelerini de kabul edecektir . JQuery yapıcısına ilettiğinizde, oluşturulacak bir jQuery nesnesinin geçerli öğesini geçirirsiniz . JQuery nesnesi daha sonra seçiciyle eşleşen DOM öğelerinin dizi benzeri bir yapısını içerir (veya yalnızca bu durumda tek bir öğe ).jQuery
window.jQuery = window.$ = jQuery;
$()
new jQuery()
this
this
JQuery nesnesi oluşturulduktan sonra, jQuery API'si artık gösterilmektedir. Bir jQuery api işlevi çağrıldığında, bu dizi benzeri yapı üzerinde dahili olarak yinelenir. Dizideki her öğe için, API'nin geri arama işlevini çağırır ve geri aramaları this
geçerli öğeye bağlar . Bu çağrı obj
, dizi benzeri yapının i
bulunduğu ve geçerli öğenin dizisindeki konum için kullanılan yineleyici olan yukarıdaki kod snippet'inde görülebilir .