Ushbu ochiq manbali loyihani butun dunyo bo'ylab odamlar uchun taqdim etmoqchimiz.

Ushbu qo'llanmaning mazmuni sizning tilingizga tarjima qilishga yordam bering!

darsga qaytish

ToStringni lug'atga qo'shing

Har qanday key/value juftligini saqlash uchun Object.create(null) shaklida yaratilgan lug'at obyekti mavjud.

Unga dictionary.toString() usulini qo’shing, bu kalitlarni vergul bilan ajratilgan ro’yxatini qaytarishi kerak. Sizning toString obyekt uchun for..in ko’rinishida bo’lmasligi kerak.

Bu shunday ishlashi kerak:

let dictionary = Object.create(null); // dictionary.toString usulini qo'shish uchun sizning kodingiz // ba'zi ma'lumotlarni qo'shing dictionary.apple = "Apple"; dictionary.__proto__ = "test"; // __proto__ bu yerda odatiy xususiyat kalitidir // faqat apple va __proto__ tsiklda for(let key in dictionary) { alert(key); // "apple", so'ng "__proto__" } // sizning toString amalda alert(dictionary); // "apple,__proto__"

Usul Object.keys yordamida barcha ro’yxatga olinadigan kalitlarni olishi va ularning ro’yxatini chiqarishi mumkin.

toString ni sanoqsiz qilish uchun, uni xususiyat tavsiflovchisi yordamida aniqlaymiz. Object.create sintaksisi bizni obyektni ikkinchi argument sifatida xususiyat tavsiflovchilari bilan ta’minlashga imkon beradi.

let dictionary = Object.create(null, { toString: { // toString xususiyatini aniqlang value() { // qiymati funktsiya return Object.keys(this).join(); } } }); dictionary.apple = "Apple"; dictionary.__proto__ = "test"; // apple va __proto__ tsiklda for(let key in dictionary) { alert(key); // "apple", so'ng "__proto__" } // toString tomonidan vergul bilan ajratilgan xususiyatlar ro'yxati alert(dictionary); // "apple,__proto__"

Agar xususiyatni deskriptor yordamida yaratadigan bo’lsak, uning bayroqlari sukut bo’yicha false bo’ladi. Shunday qilib, yuqoridagi kodda dictionary.toString ni sanab bo’lmaydi.

Ko’rib chiqish uchun Xususiyat bayroqlari va tavsiflovchilar bo’limiga qarang.