JavaScript ES5 Nesne Yöntemleri
- Önceki Sayfa JS Nesne Prototipi
- Sonraki Sayfa JS Fonksiyon Tanımı
ECMAScript 5 (2009) JavaScript'a birçok yeni nesne yöntemi ekledi.
Nesneyi yönetme
// Mevcut nesneyi prototip olarak kullanarak nesne oluşturma Object.create() // Nesneye özellik eklemeyi veya değiştirmeyi ekler Object.defineProperty(object, property, descriptor) // Nesneye özellik eklemeyi veya değiştirmeyi ekler Object.defineProperties(object, descriptors) // Özellik erişme Object.getOwnPropertyDescriptor(object, property) // Tüm özellikleri döner Object.getOwnPropertyNames(object) // Prototipi erişme Object.getPrototypeOf(object) // Dizgi olarak sayısallaştırılabilir özellikleri döner Object.keys(object)
Nesneyi koruma
// Nesneye özellik eklemeyi önler Object.preventExtensions(object) // Özellik eklenebilirse, true döner Object.isExtensible(object) // Nesne özelliklerini (değerleri değil) değiştirmeyi önler Object.seal(object) // Eğer nesne kilitlenmişse, true döner Object.isSealed(object) // Nesneye herhangi bir değişiklik yapmayı önler Object.freeze(object) // Eğer nesne donatılmışsa, true döner Object.isFrozen(object)
Özellik değeri değiştirme
Gramer
Object.defineProperty(object, property, {value : value)
örnek
Bu örnekteki özellik değeri değiştirme:
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; // Özellik değiştirme Object.defineProperty(person, "language", {value : "NO"});
Meta verileri değiştirme
ES5, aşağıdaki özellik meta verilerini değiştirmeyi izin verir:
writable : true // Özellik değeri değiştirilebilir enumerable : true // Özellik sayısallaştırılabilir configurable : true // Özellik yeniden yapılandırılabilir
writable : false // Özellik değeri değiştirilemez enumerable : false // Özellik sayısallaştırılabilir değil configurable : false // özellik yeniden yapılandırılamaz
ES5, getter ve setter'lerin değiştirilmesine izin verir:
// tanımlama getter get: function() { return language } // tanımlama setter set: function(value) { language = value }
Bu örnek, language'ı yalnızca okunabilir olarak ayarlar:
Object.defineProperty(person, "language", {writable:false});
Bu örnek, language'ı sayılamaz hale getirir:
Object.defineProperty(person, "language", {enumerable:false});
Tüm özellikleri sıralama
Bu örnek, bir nesnenin tüm özelliklerini sıralar:
örnek
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; Object.defineProperty(person, "language", {enumerable:false}); Object.getOwnPropertyNames(person); // dizilerin dizisini döndürür
Sayılabilecek özellikleri sıralama
Bu örnek, yalnızca nesnenin sayılabilecek özelliklerini sıralar:
örnek
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; Object.defineProperty(person, "language", {enumerable:false}); Object.keys(person); // sayılabilecek özelliklerin dizisini döndürür
Özellik ekleme
Bu örnek, nesneye yeni özellik ekler:
örnek
// nesne oluşturma const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; // özellik ekleme Object.defineProperty(person, "year", {value:"2008"});
Getter ve Setter eklemek
Object.defineProperty()
Method, Getter ve Setter eklemek için de kullanılabilir:
örnek
// nesne oluşturma const person = {firstName:"Bill", lastName:"Gates"}; // tanımlama getter Object.defineProperty(person, "fullName", { get: function () {return this.firstName + " " + this.lastName;} });
bir sayıcı örneği
// nesne tanımlama const obj = {counter:0}; // tanımlama setter Object.defineProperty(obj, "reset", { get : function () {this.counter = 0;} }); Object.defineProperty(obj, "increment", { get : function () {this.counter++;} }); Object.defineProperty(obj, "decrement", { get : function () {this.counter--;} }); Object.defineProperty(obj, "add", { set : function (value) {this.counter += value;} }); Object.defineProperty(obj, "subtract", { set : function (i) {this.counter -= i;} }); // Sayıcı operasyonu: obj.reset; obj.add = 5; obj.subtract = 1; obj.increment; obj.decrement;
- Önceki Sayfa JS Nesne Prototipi
- Sonraki Sayfa JS Fonksiyon Tanımı