defineProperty()

Misol

Xususiyat qo‘shing:

// Create an Object: const person = {   firstName: "John",   lastName: "Doe",   language: "EN" }; // Add a new Property Object.defineProperty(person, "year", {value:"2008"})
O‘zingiz sinab ko‘ring »

Xususiyatni o‘zgartiring:

// Create an object: const person = {   firstName: "John",   lastName: "Doe",   language: "EN" }; // Change a property Object.defineProperty(person, "language", {value:"NO"})
O‘zingiz sinab ko‘ring »

Quyida ko‘proq misollar!


ULASHISH

Tavsif

Object.defineProperty() metodi obyekt xususiyatini qo‘shadi yoki o‘zgartiradi.

Object.defineProperty() metodi xususiyat metama’lumotlarini o‘zgartirish imkonini beradi.

Object.defineProperty() metodi getter va setterlar qo‘shish imkonini beradi.

Quyida ko‘proq misollarni ko‘ring.


Tegishli metodlar:

Object.defineProperty() bitta xususiyatni qo‘shadi yoki o‘zgartiradi.

Object.defineProperties() ko‘plab xususiyatlarni qo‘shadi yoki o‘zgartiradi.


Object.getOwnPropertyNames() obyekt xususiyatlarining nomlarini qaytaradi.

Object.getOwnPropertyDescriptor() xususiyat deskriptorini qaytaradi.

Object.getOwnPropertyDescriptors() barcha xususiyatlar deskriptorlarini qaytaradi.


Sintaksis

Object.defineProperty(object, property, descriptor)

Parametrlar

Parametr Tavsif
object Majburiy.
Obyekt.
property Majburiy.
Xususiyat nomi.
descriptor Majburiy.
Qo‘shiladigan yoki o‘zgartiriladigan xususiyat deskriptori:

value: value
writable : true|false
enumerable : true|false
configurable : true|false
get : function
set : function

Qaytariladigan qiymat

Tip Tavsif
ObjectO‘zgarishlar kiritilgan, uzatilgan obyekt.


Ko‘proq misollar

Misol

// Create an Object: const person = {   firstName: "John",   lastName : "Doe",   language : "NO", }; // Change a Property: Object.defineProperty(person, "language", {   value: "EN",   writable : true,   enumerable : true,   configurable : true }); // Enumerate Properties let txt = ""; for (let x in person) {   txt += person[x] + "<br>"; } // Display Properties document.getElementById("demo").innerHTML = txt;
O‘zingiz sinab ko‘ring »

Keyingi misol ham xuddi shu kod, faqat unda language xususiyati sanab o‘tishdan (enumeration) yashiriladi:

Misol

// Create an Object: const person = {   firstName: "John",   lastName : "Doe",   language : "NO", }; // Change a Property: Object.defineProperty(person, "language", {   value: "EN",   writable : true,   enumerable : false,   configurable : true }); // Enumerate Properties let txt = ""; for (let x in person) {   txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
O‘zingiz sinab ko‘ring »

Setter va getterlar

Bu misolda language qiymatini katta harflarda xavfsiz yangilash uchun setter va getter yaratiladi:

Misol

// Create an Object: const person = {   firstName: "John",   lastName : "Doe",   language : "NO" }; // Change a Property: Object.defineProperty(person, "language", {   get : function() { return language },   set : function(value) { language = value.toUpperCase()} }); // Change Language person.language = "en"; // Display Language document.getElementById("demo").innerHTML = person.language;
O‘zingiz sinab ko‘ring »

Bu misolda ism va familiyani birlashtirish uchun getter ishlatiladi:

Misol

// Create an Object: const person = {   firstName: "John",   lastName : "Doe" }; // Define a Getter Object.defineProperty(person, "fullName", { get: function () {return this.firstName + " " + this.lastName;} });
O‘zingiz sinab ko‘ring »

JavaScript getter va setterlari hisoblagichlar yaratish uchun juda mos:

Misol

// Define Setters and Getters 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 (value) {this.counter -= value;} });
O‘zingiz sinab ko‘ring »

Brauzerlarda qo‘llab-quvvatlash

Object.defineProperty() — ECMAScript5 (ES5 2009) imkoniyati.

JavaScript 2009 2013-yil iyulidan beri barcha brauzerlarda qo‘llab-quvvatlanadi:

Chrome
23
IE/Edge
11
Firefox
21
Safari
6
Opera
15
2012-yil sentabr 2012-yil sentabr 2013-yil aprel 2012-yil iyul 2013-yil iyul

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!