جسٹاگرافک ایس5 آپرکشن
- پچھلے پیج جس اسکریپٹ آٹھارک پرنٹ
- آئندہ پیج جس اسکریپٹ فنکشن کی تعریف
ایکمپریسکریپت 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 اجازه میدهد که getter و setter را تغییر دهیم:
// تعریف getter get: function() { return language } // تعریف setter 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"});
افزودن Getter و Setter
Object.defineProperty()
روش نیز میتواند برای اضافه کردن Getter و Setter استفاده شود:
مثال
// ایجاد اشیاء const person = {firstName:"Bill", lastName:"Gates"}; // تعریف getter Object.defineProperty(person, "fullName", { get: function () {return this.firstName + " " + this.lastName;} });
مثال یک نمونه شمارنده
// تعریف اشیاء const obj = {counter:0}; // تعریف 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;} }); // کانٹر کی آپریشن: obj.reset; obj.add = 5; obj.subtract = 1; obj.increment; obj.decrement;
- پچھلے پیج جس اسکریپٹ آٹھارک پرنٹ
- آئندہ پیج جس اسکریپٹ فنکشن کی تعریف