methods للكائن لجافا سكربت ES5
- الصفحة السابقة نموذج الأصل JS
- الصفحة التالية تعريف وظيفة JS
ECMAScript 5 (2009) أضاف العديد من الطرق الجديدة إلى JavaScript.
إدارة العنصر
// إنشاء عنصر باستخدام العنصر الحالي كنموذج 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;
- الصفحة السابقة نموذج الأصل JS
- الصفحة التالية تعريف وظيفة JS