Reflect API'si
Reflect yöntemleriyle işlemleri iletin.
Reflect API'si, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 4 dersten oluşur.
Reflect Nedir
Reflect, nesneler üzerinde alma, ayarlama, silme ve daha fazlası gibi varsayılan düşük düzeyli işlemleri gerçekleştiren yöntemlere sahip yerleşik bir nesnedir.
Yöntemleri, vekil tuzaklarını bire bir yansıtır; bu da onu doğru vekiller yazmak için ideal bir eş yapar.
Reflect.get
Reflect.get(target, prop), target[prop] ile aynı şekilde bir özelliği okur; ancak bunu temiz bir işlev çağrısı olarak yapar.
const obj = { name: 'Ada', age: 36 };
console.log(Reflect.get(obj, 'name'));
console.log(Reflect.get(obj, 'age'));Reflect.set
Reflect.set(target, prop, value), bir özelliğe yazar ve başarının göstergesi olarak true veya false döndürür; tıpkı bir set tuzağının beklediği gibi.
const obj = {};
const ok = Reflect.set(obj, 'score', 42);
console.log(ok);
console.log(obj.score);Reflect.has ve deleteProperty
Reflect.has, in işlecini; Reflect.deleteProperty ise delete işlemini yansıtır. Her ikisi de Boolean döndüren işlevlerdir.
const obj = { a: 1, b: 2 };
console.log(Reflect.has(obj, 'a'));
console.log(Reflect.deleteProperty(obj, 'b'));
console.log(Reflect.has(obj, 'b'));Reflect.ownKeys
Reflect.ownKeys, Symbol'ler ve numaralandırılamayanlar dahil tüm kendi özellik anahtarlarını döndürür; Object.keys'ten daha kapsamlıdır.
const obj = { a: 1, b: 2 };
Object.defineProperty(obj, 'hidden', { value: 3, enumerable: false });
console.log(Object.keys(obj));
console.log(Reflect.ownKeys(obj));Vekilde İletme
Asıl güç şuradadır: bir tuzağın içinde, varsayılan davranışı gerçekleştirmek için eşleşen Reflect yöntemini çağırın ve ardından özel mantığınızı bunun çevresine ekleyin.
const proxy = new Proxy({ v: 1 }, {
get(target, prop, receiver) {
console.log('reading ' + prop);
return Reflect.get(target, prop, receiver);
}
});
console.log(proxy.v);set İşlemini Doğru Şekilde İletme
Bir set tuzağının içinde Reflect.set kullanmak doğru Boolean değeri otomatik olarak döndürür; böylece kendiniz true döndürmeyi hatırlamanız gerekmez.
const proxy = new Proxy({}, {
set(target, prop, value, receiver) {
console.log('writing ' + prop);
return Reflect.set(target, prop, value, receiver);
}
});
proxy.x = 10;
console.log(proxy.x);receiver Neden Önemli
receiver değerini Reflect.get ve Reflect.set'e geçirmek, alıcıların ve ayarlayıcıların doğru this ile çalışmasını sağlar. Nesneler birbirinden miras aldığında bu önemlidir.
const base = { get label() { return 'id-' + this.id; } };
const proxy = new Proxy(base, {
get(target, prop, receiver) {
return Reflect.get(target, prop, receiver);
}
});
const child = Object.create(proxy);
child.id = 7;
console.log(child.label);Reflect.apply
Reflect.apply(fn, thisArg, argsArray), bir işlevi verilen bir this ve bağımsız değişken dizisiyle çağırır; fn.apply için daha temiz bir alternatiftir.
function greet(greeting, name) {
return greeting + ', ' + name;
}
console.log(Reflect.apply(greet, null, ['Hello', 'Ada']));Reflect.construct
Reflect.construct(Cls, argsArray), bir örnek oluşturur; bağımsız değişkenlerden oluşan bir diziyle kullanıldığında new Cls(...args) ile eşdeğerdir.
class Point {
constructor(x, y) { this.x = x; this.y = y; }
}
const p = Reflect.construct(Point, [3, 4]);
console.log(p.x, p.y);Reflect Neden Önemli
Reflect, nesne iç işleyişlerinin işlev biçiminde ve öngörülebilir sürümlerini sağlar ve vekillerle kusursuz şekilde eşleşir: her tuzak, eşleşen Reflect yöntemine iletir. Sonuç, doğru ve yalın vekil kodudur. Sırada tüm bunları pratik kullanım alanlarına uygulayacaksınız.
const audited = new Proxy({ balance: 100 }, {
set(t, p, v, r) {
console.log(p + ': ' + t[p] + ' -> ' + v);
return Reflect.set(t, p, v, r);
}
});
audited.balance = 150;
console.log(audited.balance);Kısa Kontrol
Bir get tuzağının içinde target[prop] yerine neden Reflect.get(target, prop, receiver) çağrılır?
Özet: Reflect API'si
Proxy'nin eşini öğrendiniz:
Reflect, işlev biçiminde varsayılan işlemler sağlar:get,set,has,deleteProperty,ownKeys.- Yöntemleri, vekil tuzaklarını bire bir yansıtır.
receiverileReflectüzerinden iletme, kalıtımın doğru çalışmasını sağlar.Reflect.applyveReflect.construct, işlevleri ve örnekleri temiz bir şekilde çağırır ve oluşturur.
Sıkça Sorulan Sorular
“Reflect API'si” dersi ücretsiz mi?
Evet — “Reflect API'si” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 4 dersten oluşur.
“Reflect API'si” dersinde ne öğreneceğim?
Reflect yöntemleriyle işlemleri iletin. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Reflect API'si” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.