JavaScript:متدهای شیء در ورژن ES5 جاوااسکریپت

از ویکی کد
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

https://www.w3schools.com/js/js_object_es5.asp

JavaScript ES5 Object Methods

متد های شی در ورژن Es5 جاوااسکریپت

ECMAScript 5 added a lot of new Object Methods to JavaScript.

ورژن ECMAScript 5 متد شی زیادی به جاوااسکریپت اضافه کرد .

ES5 New Object Methods

متد های جدید شی در Es5

// Adding or changing an object property

Object.defineProperty(object, property, descriptor)


// Adding or changing many object properties

Object.defineProperties(object, descriptors)


// Accessing Properties

Object.getOwnPropertyDescriptor(object, property)


// Returns all properties as an array

Object.getOwnPropertyNames(object)


// Returns enumerable properties as an array

Object.keys(object)


// Accessing the prototype

Object.getPrototypeOf(object)


// Prevents adding properties to an object

Object.preventExtensions(object)

// Returns true if properties can be added to an object

Object.isExtensible(object)


// Prevents changes of object properties (not values)

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)

Changing a Property Value

عوض کردن مقدار یک ویژگی

Syntax

شیوه نوشتار

Object.defineProperty(object, property, {value : value})

This مثال changes a property value:

این مثال مقدار یک ویژگی را تغییر می دهد :

مثال

var person = {

 firstName: "John",

  lastName : "Doe",

  language : "EN"

};


// Change a property

Object.defineProperty(person, "language", {value : "NO"});

Changing Meta Data

تغییر دادن متا دیتا ها

ES5 allows the following property meta data to be changed:

Es5 به ویژگی های متا دیتای زیر اجازه تغییر می دهد :

writable : true      // Property value can be changed

enumerable : true    // Property can be enumerated

configurable : true  // Property can be reconfigured

writable : false     // Property value can not be changed

enumerable : false   // Property can be not enumerated

configurable : false // Property can be not reconfigured

ES5 allows getters and setters to be changed:

Es5 اجازه می دهد که متد های Getter و setter تغییر پیدا کنند :

// Defining a getter

get: function() { return language }

// Defining a setter

set: function(value) { language = value }

This مثال makes language read-only:

این مثال language  را فقط خواندنی می کند :

Object.defineProperty(person, "language", {writable:false});

This مثال makes language not enumerable:

این مثال ویژگی language را غیر قابل شمارش یا enumerable می کند :

Object.defineProperty(person, "language", {enumerable:false});

Listing All Properties

لیست کردن تمام ویژگی ها

This مثال list all properties of an object:

این مثال کلیه ویژگی های یک شی را لیست می کند :

مثال

var person = {

  firstName: "John",

  lastName : "Doe"

  language : "EN"

};


Object.defineProperty(person, "language", {enumerable:false});

Object.getOwnPropertyNames(person);  // Returns an array of properties

Listing Enumerable Properties

لیست کردن ویژگی های قابل شمارش یا Enumerable

This مثال list only the enumerable properties of an object:

این مثال فقط ویژگی های قابل شمارش یا enumerable های یک شی را لیست می کند :

مثال

var person = {

 firstName: "John",

  lastName : "Doe"

 language : "EN"

};


Object.defineProperty(person, "language", {enumerable:false});

Object.keys(person);  // Returns an array of enumerable properties

Adding a Property

اضافه کردن یک ویژگی

This مثال adds a new property to an object:

این مثال یک ویژگی جدید به یک شی اضافه می کند :

مثال

// Create an object:

var person = {

 firstName: "John",

 lastName : "Doe",

  language : "EN"

};


// Add a property

Object.defineProperty(person, "year", {value:"2008"});

Adding Getters and Setters

اضافه کردن متد های Getter و Setter

The Object.defineProperty() method can also be used to add Getters and Setters:

از متد Object.defineProperty() می توان برای اضافه کردن متد های Getter و Setter استفاده نمود :

مثال

//Create an object

var person = {firstName:"John", lastName:"Doe"};


// Define a getter

Object.defineProperty(person, "fullName", {

 get : function () {return this.firstName + " " + this.lastName;}

});

A Counter مثال

مثال یک شمارنده

مثال

// Define object

var obj = {counter:0};


// Define setters

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;}

});


// Play with the counter:

obj.reset;

obj.add = 5;

obj.subtract = 1;

obj.increment;

obj.decrement;