Well-known symbols
Symbol.iterator ve Symbol.toPrimitive gibi yerleşik sembolleri öğrenirsin.
Well-known symbols
JavaScript, Symbol nesnesi üzerinde dile önceden yerleşmiş well-known semboller taşır. Bunlar dilin davranışına kanca atan özel anahtarlardır.
Daha önce Symbol.iterator'ı gördün: for...of nesnelerini gezen mekanizmadır. Bunun dışında Symbol.toPrimitive tür dönüşümünü, Symbol.toStringTag toString çıktısını, Symbol.hasInstance ise instanceof davranışını özelleştirir. Her biri uygulamanın tamamında paylaşılan bir semboldür.
Symbol.toPrimitive
JavaScript bir nesneyi primitive değere çevirmek istediğinde (örneğin +obj veya obj + 1), önce [Symbol.toPrimitive] metoduna bakar.
Bu metod bir ipucu (hint) alır: 'number', 'string' veya 'default'. İpucuya göre uygun primitive değeri döndürürsün. Bu, eski valueOf ve toString ikilisinden daha öncelikli ve nettir.
Uygulama toString çıktısını etiketle
Bir cart nesnesi oluştur. İçine items: 3 dize anahtarını ve [Symbol.toStringTag]: 'Cart' özelliğini ekle. Object.prototype.toString.call(cart) çağrısının sonucunu console.log ile yazdır; çıktı [object Cart] olmalı.
Örnek çözümü göster
const cart = {
items: 3,
[Symbol.toStringTag]: 'Cart'
};
console.log(Object.prototype.toString.call(cart));
Kendini test et
-
Object.prototype.toString.call(obj) çıktısını özelleştirmek için hangi sembol kullanılır?
- Symbol.iterator
- Symbol.toPrimitive
- Symbol.hasInstance
- Symbol.toStringTag
Cevabı göster
Symbol.toStringTag — Doğru. Symbol.toStringTag, toString çıktısındaki etiketi belirler (ör. '[object Cart]').
-
Symbol.toPrimitive metodunu tanımla
const price = { value: 100, [____](hint) { return hint === 'number' ? this.value : '$' + this.value; } };Cevabı göster
const price = { value: 100, [Symbol.toPrimitive](hint) { return hint === 'number' ? this.value : '$' + this.value; } }; -
Well-known semboller
- Symbol.iterator
- for...of ile gezer
- Symbol.toPrimitive
- Tür dönüşümünü özelleştirir
- Symbol.toStringTag
- toString çıktısını etiketler
- Symbol.hasInstance
- instanceof davranışını değiştirir