Obyektlarni himoyalash
Obyektni himoyalash metodlari
// Prevents re-assignment
const car = {type:"Fiat", model:"500", color:"white"};
// Prevents adding object properties
Object.preventExtensions(object)
// Returns true if properties can be added to an object
Object.isExtensible(object)
// Prevents adding and deleting object properties
Object.seal(object)
// Returns true if object is sealed
Object.isSealed(object)
// Prevents any changes to an object
Object.freeze(object)
// Returns true if object is frozen
Object.isFrozen(object)
const dan foydalanish
Obyektni o‘zgartirishdan himoya qilishning eng keng tarqalgan usuli — const kalit so‘zidan foydalanishdir.
const bilan siz obyektni qayta tayinlay olmaysiz, lekin xossa qiymatini o‘zgartirishingiz, xossani o‘chirishingiz yoki yangi xossa yaratishingiz mumkin.
JavaScript Object.preventExtensions() metodi
Object.preventExtensions() usuli obyektga xususiyatlar qo‘shishni oldini oladi.
Misol
// Create Object
const person = {firstName:"John", lastName:"Doe"};
// Prevent Extensions
Object.preventExtensions(person);
// This will throw an error
person.nationality = "English";
O‘zingiz sinab ko‘ring »
Massivlar obyektlar bo‘lganligi sababli, massivlarni kengaytmalardan ham oldini olish mumkin:
Misol
// Create Array
const fruits = ["Banana", "Orange", "Apple", "Mango"];
Object.preventExtensions(fruits);
// This will throw an error:
fruits.push("Kiwi");
O‘zingiz sinab ko‘ring »
Object.preventExtensions() metodi strict bo‘lmagan rejimda hech qanday xatosiz ishlamaydi, strict rejimda esa TypeError xatosini tashlaydi.
JavaScript Object.isExtensible() metodi
Obyektning kengaytirilishi mumkinligini tekshirish uchun Object.isExtensible() dan foydalanishingiz mumkin.
Agar obyekt kengaytiriladigan bo‘lsa, Object.isExtensible() haqiqatni qaytaradi.
Misollar
// Create Object
const person = {firstName:"John", lastName:"Doe"};
// Prevent Extensions
Object.preventExtensions(person);
// This will return false
let answer = Object.isExtensible(person);
O‘zingiz sinab ko‘ring »
// Create Array
const fruits = ["Banana", "Orange", "Apple", "Mango"];
// Prevent Extensions
Object.preventExtensions(fruits);
// This will return false
let answer = Object.isExtensible(fruits);
O‘zingiz sinab ko‘ring »
JavaScript Object.seal() metodi
Object.seal() metodi yangi xossalar qo‘shilishi yoki o‘chirilishining oldini oladi.
The Object.seal() method makes existing properties non-configurable.
Obyektning muhrlanganligini tekshirish uchun Object.isSealed() usulidan foydalanish mumkin.
Misol
"use strict"
// Create Object
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
// Seal Object
Object.seal(person)
// This will throw an error
delete person.age;
O‘zingiz sinab ko‘ring »
Arraylar obyektlar bo‘lganligi sababli, Arraylar ham muhrlanishi mumkin:
Misol
// Create Array
const fruits = ["Banana", "Orange", "Apple", "Mango"];
Object.seal(fruits);
// This will throw an error:
fruits.push("Kiwi");
O‘zingiz sinab ko‘ring »
Object.seal() usuli qat’iy bo‘lmagan rejimda jimgina ishlamay qoladi va qattiq rejimda TypeError’ni chiqaradi.
JavaScript Object.isSealed() metodi
Obyektning muhrlanganligini tekshirish uchun Object.isSealed() usulidan foydalanish mumkin.
Agar obyekt muhrlangan (sealed) bo‘lsa, Object.isSealed() metodi true qiymatini qaytaradi.
Misollar
// Create Object
const person = {firstName:"John", lastName:"Doe"};
// Seal Object
Object.seal(person);
// This will return true
let answer = Object.isSealed(person);
O‘zingiz sinab ko‘ring »
// Create Array
const fruits = ["Banana", "Orange", "Apple", "Mango"];
// Seal Array
Object.seal(fruits);
// This will return true
let answer = Object.isSealed(fruits);
O‘zingiz sinab ko‘ring »
JavaScript Object.freeze() metodi
Object.freeze() metodi obyektga har qanday o‘zgartirish kiritilishining oldini oladi.
Muzlatilgan obyektlar faqat o‘qish uchun mo‘ljallangan.
Xususiyatlarni o‘zgartirish, qo‘shish yoki o‘chirishga yo‘l qo‘yilmaydi.
Misol
"use strict"
// Create Object
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
// Freeze Object
Object.freeze(person)
// This will throw an error
person.age = 51;
O‘zingiz sinab ko‘ring »
Massivlar obyekt bo‘lgani uchun ularni ham muzlatish mumkin:
Misol
const fruits = ["Banana", "Orange", "Apple", "Mango"];
Object.freeze(fruits);
// This will trow an error:
fruits.push("Kiwi");
O‘zingiz sinab ko‘ring »
Object.freeze() metodi strict bo‘lmagan rejimda hech qanday xatosiz ishlamaydi, strict rejimda esa TypeError xatosini tashlaydi.
JavaScript Object.isFrozen() metodi
Obyektning muzlatilganligini tekshirish uchun Object.isFrozen() usulidan foydalanish mumkin.
Agar obyekt muzlatilgan bo‘lsa, Object.isFrozen() haqiqatni qaytaradi.
Misollar
// Create Object
const person = {firstName:"John", lastName:"Doe"};
// Freeze Object
Object.freeze(person);
// This will return true
let answer = Object.isFrozen(person);
O‘zingiz sinab ko‘ring »
// Create Array
const fruits = ["Banana", "Orange", "Apple", "Mango"];
Object.freeze(fruits);
// This will return true:
let answer = Object.isFrozen(fruits);
O‘zingiz sinab ko‘ring »
Kengaytirilgan bo‘limlar:
JavaScript obyektlarini takrorlash
JavaScript obyektlarini qabul qiluvchilar va o‘rnatuvchilar
JavaScript obyektlarini boshqarish
JavaScript obyektini himoya qilish
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
