jQuery, nesne üzerinde depoladığı veriler için 'pvt' bayrağını ayarlamak için _data kullanır. pvt
, nesneden genel veri isteğinde bulunduğunda, pvt verilerinin geri döndürülmemesi için kullanılır. Bu, jQuery'nin .data()
mekanizmasının (geçiş yapmanın yaptığı gibi) .data()
kamu kullanımını etkilemesini engellemektir.
jQuery kaynağında bu bildiriyi görebilirsiniz: sadece jQuery.data
çağırır ve dördüncü parametre (gizlilik olan) gerçek olamayacak kadar zorlar
// For internal use only.
_data: function(elem, name, data) {
return jQuery.data(elem, name, data, true);
},
. Verileri alırken, pvt
bayrağı ayarlanmışsa, biraz farklı bir şekilde alınır. .data()
genel arabirimleri, pvt
bayrağını göstermez.
Sen
pvt
bir örnek
jQuery.data()
bu bölümünde burada ele görebilirsiniz
: daha sonra aynı işlevde sonra
// An object can be passed to jQuery.data instead of a key/value pair; this gets
// shallow copied over onto the existing cache
if (typeof name === "object" || typeof name === "function") {
if (pvt) {
cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name);
} else {
cache[ id ] = jQuery.extend(cache[ id ], name);
}
}
ve bu açıklama oldukça açıklayıcı:
// Internal jQuery data is stored in a separate object inside the object's data
// cache in order to avoid key collisions between internal data and user-defined
// data
if (pvt) {
if (!thisCache[ internalKey ]) {
thisCache[ internalKey ] = {};
}
thisCache = thisCache[ internalKey ];
}
Oftentimes olacak * özel * veya başka bir özel anlam olarak ele alınması gereken değişkenleri ve işlevleri (veya nesne yöntemlerini/özelliklerini), kapsam veya uygulama ile gruplandırmak için '_ 'gibi ön tanımlı bir karaktere sahiptir. JQuery'de, yalnızca * bu nesneye özel olarak davranma *, yani, ** Dışarıdan erişme. ** –