JavaScript'teki alıcılar ve ayarlayıcıları araştırıyorum ve jQuery's $ .extend ve Underscore's _.extend gibi nesneleri genişletmek için yayılma işlevleriyle ne kadar iyi gittiklerini araştırıyorum. Chrome ve Firefox'taJavaScript yükselticileri/belirteçler ve genişletme nesneleri
var test = {
get size() { return this._size; },
set size(val) { this._size = val; },
}
test.size = "LARGE";
console.log(test.size);
//$.extend(test, { get size() { return "MEDIUM"; } });
_.extend(test, { get size() { return "MEDIUM"; } });
console.log(test.size);
test.size = "SMALL";
console.log(test.size);
alıyorum:
LARGE
MEDIUM
SMALL
birileri bana neler açıklayabilir şöyle kod kurulum nedir? Orijinal ayarlayıcıyı aradıktan sonra, orijinal alıcı da geri yüklenir mi? ,
_.extend = function(obj) {
each(slice.call(arguments, 1), function(source) {
for (var prop in source) obj[prop] = source[prop];
});
return obj;
};
Bu kaynak nesnenin özelliklerini dolaşır hedef nesneye ekler ve sonra hedef nesneyi döndürür:
ben düşünüyorum getter, hem orijinal ayarlayıcıyı hem de alıcıyı değiştirir ve sonuçta bu özellik, 'size' boyutunu "SMALL" olarak ayarlar. Konsol.log (this._size); 'en sonunda ne aldığınızı görün .. – JCOC611
@ JCOC611 - Ben öyle düşünmüyorum. Bir açıklama için cevabımı görün. –