Sales1 min read108 words

JavaScript'te Object.freeze() nasıl kullanılır?

Erkan Sivas

PlusClouds Author

Cloud & SaaS

JavaScript'te Object.freeze() nasıl kullanılır?

JavaScript'te nesneler ve diziler değişkendir. Bu, istediğimiz zaman bir nesneyi (veya diziyi) değiştirebileceğimiz anlamına gelir. Ama herhangi bir nedenle bunun olmasını istemiyorsak ve nesneyi değişmez kılmak istiyorsak.


Bunu freeze() yöntemini kullanarak yapabiliriz.


freeze() yöntemi ile dondurduğunuz bir nesne artık değiştirilemez olur; bir nesneyi freeze ile dondurmak, ona yeni özelliklerin eklenmesini, mevcut özelliklerin kaldırılmasını, mevcut özelliklerin numaralandırılabilirliğini, yapılandırılabilirliğini veya yazılabilirliğini değiştirmeyi ve mevcut özelliklerin değerlerinin değiştirilmesini engeller. Ayrıca bir nesnenin dondurulması, prototipinin değiştirilmesini de engeller.


Bu yöntemin kullanımına ilişkin şöyle bir örnek kod ekleyebilirim;
const obj = {
    name: "Jack"
};

Object.freeze(obj);

obj.name = "Kelly";
// Throws an error in strict mode

console.log(obj.name);
// expected output: "Jack"



Frequently Asked Questions

Object.freeze() ne işe yarar?

Dondurulan nesne artık değiştirilemez olur. Bu, ona yeni özelliklerin eklenmesini, mevcut özelliklerin kaldırılmasını, mevcut özelliklerin numaralandırılabilirliğini, yapılandırılabilirliğini veya yazılabilirliğini değiştirmeyi ve mevcut özelliklerin değerlerinin değiştirilmesini engeller. Ayrıca nesnenin prototipinin değiştirilmesini de engeller.

Neden Object.freeze() kullanılır?

Bir nesnenin değiştirilmesini istemiyorsak Object.freeze() kullanılır. Bu, nesne üzerinde istenmeyen değişikliklerin önüne geçer ve değiştirilemez hal getirir.

Dondurulmuş bir nesneye yeni özellik eklemeye çalışırsam ne olur?

Bu girişimler engellenir; özellikle sıkı modda hata fırlatılır. Yeni özellik ekleme denemesi nesnenin değiştirilmesini engeller.

Dondurulmuş bir nesnenin mevcut bir özelliğinin değeri değiştirilirse ne olur?

Mevcut özelliklerin değerlerinin değiştirilmesi engellenir. Sıkı modda hata fırlatılır; örnekte obj.name değeri başlangıçta kalır ve değiştirilemez.

Dondurulmuş nesnenin prototipi değiştirilir mi?

Hayır, prototipinin değiştirilmesi engellenir. Bu durum dondurmanın kapsamını genişletir.

Nesnedeki özelliklerin enumerability, configurability veya writability durumları değiştirilebilir mi?

Hayır, bu durumlar değiştirilmez; mevcut özelliklerin değerlerinin değiştirilmesini engeller ve yazılabilirlik, yapılandırılabilirlik gibi özellikler korunur.

Dondurulmuş bir nesnenin özelliklerini okumak mümkün müdür?

Evet, mevcut özelliklere erişim mümkün olur. Örnekte obj.name değeri 'Jack' olarak kalır.

JavaScript'te Object.freeze() nasıl kulla… | PlusClouds Blog