जावास्क्रिप्ट ES5 ऑब्जैक्ट मथड
- पिछला पृष्ठ JS ऑब्जेक्ट प्रारूप
- अगला पृष्ठ JS फ़ंक्शन डिफ़ाइनिशन
एससीएमएसक्रिप्ट 5 (2009) ने जेसक्रिप्ट में कई नए ऑब्जेक्ट विधियाँ जोड़ी हैं।
管理对象
// 以现有对象为原型创建对象 Object.create() // 添加或更改对象属性 Object.defineProperty(object, property, descriptor) // 添加或更改对象属性 Object.defineProperties(object, descriptors) // 访问属性 Object.getOwnPropertyDescriptor(object, property) // 以数组返回所有属性 Object.getOwnPropertyNames(object) // 访问原型 Object.getPrototypeOf(object) // 以数组返回可枚举属性 Object.keys(object)
ऑब्जैक्ट को सुरक्षित करना
// ऑब्जैक्ट में गुण जोड़ने से रोकेगा Object.preventExtensions(object) // यदि गुण ऑब्जैक्ट में जोड़ा जा सकता है, तो true वापस करेगा Object.isExtensible(object) // ऑब्जैक्ट के गुण (नहीं मूल्य) को परिवर्तन से रोकेगा Object.seal(object) // यदि ऑब्जैक्ट शील्ड किया गया है, तो true वापस करेगा Object.isSealed(object) // ऑब्जैक्ट को किसी भी परिवर्तन से रोकेगा Object.freeze(object) // यदि ऑब्जैक्ट फ्रीज किया गया है, तो true वापस करेगा Object.isFrozen(object)
गुण का मूल्य बदलना
व्याकरण
Object.defineProperty(object, property, {value : value)
इंस्टांस
इस उदाहरण में गुण का मूल्य बदला जाए:
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; // गुण संशोधित करना Object.defineProperty(person, "language", {value : "NO"});
मेटाडाटा बदलना
ES5 अनुमति देता है कि निम्नलिखित गुण मेटाडाटा को बदला जाए:
writable : true // गुण का मूल्य बदला जा सकता है enumerable : true // गुण गणनीय है configurable : true // गुण को फिर से कॉन्फ़िगर किया जा सकता है
writable : false // गुण का मूल्य बदला नहीं जा सकता enumerable : false // गुण गणनीय नहीं है configurable : false // अट्रिब्यूट फिर से कॉन्फ़िगरेबल नहीं किया जा सकता
ES5 गेटर और सेटर को बदलने की अनुमति देता है:
// डिफाइनिंग गेटर get: function() { return language } // डिफाइनिंग सेटर set: function(value) { language = value }
इस उदाहरण में language को रीडनी कर दिया गया है:
Object.defineProperty(person, "language", {writable:false});
इस उदाहरण में language गणनीय नहीं है:
Object.defineProperty(person, "language", {enumerable:false});
सभी अट्रिब्यूट्स को सूचीबद्ध करना
इस उदाहरण में ऑब्जेक्ट के सभी अट्रिब्यूट्स को सूचीबद्ध किया गया है:
इंस्टांस
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; Object.defineProperty(person, "language", {enumerable:false}); Object.getOwnPropertyNames(person); // एक सूची वापस करता है जो अट्रिब्यूट्स को दर्शाता है
गणनीय अट्रिब्यूट्स को सूचीबद्ध करना
इस उदाहरण में केवल ऑब्जेक्ट के गणनीय अट्रिब्यूट्स को सूचीबद्ध किया जाता है:
इंस्टांस
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; Object.defineProperty(person, "language", {enumerable:false}); Object.keys(person); // एक सूची वापस करता है जो गणनीय अट्रिब्यूट्स को दर्शाता है
अट्रिब्यूट जोड़ना
इस उदाहरण में ऑब्जेक्ट में नए अट्रिब्यूट जोड़ा जाता है:
इंस्टांस
// ऑब्जेक्ट बनाना const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; // अट्रिब्यूट जोड़ना Object.defineProperty(person, "year", {value:"2008"});
गेटर और सेटर जोड़ना
Object.defineProperty()
मथडल भी गेटर और सेटर जोड़ने के लिए उपयोग किया जा सकता है:
इंस्टांस
// ऑब्जेक्ट बनाना const person = {firstName:"Bill", lastName:"Gates"}; // डिफाइनिंग गेटर Object.defineProperty(person, "fullName", { get: function () {return this.firstName + " " + this.lastName;} });
एक गणना इंस्टांस
// डिफाइनिंग ऑब्जेक्ट const obj = {counter:0}; // डिफाइनिंग सेटर 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;} }); // काउंटर ऑपरेशन: obj.reset; obj.add = 5; obj.subtract = 1; obj.increment; obj.decrement;
- पिछला पृष्ठ JS ऑब्जेक्ट प्रारूप
- अगला पृष्ठ JS फ़ंक्शन डिफ़ाइनिशन