freeCodeCamp/guide/arabic/javascript/standard-objects/object/object-getownpropertynames/index.md

2.5 KiB

title localeTitle
Object getOwnPropertyNames كائن getOwnPropertyNames

إرجاع الأسلوب Object.getOwnPropertyNames() صفيف من كافة الخصائص (يمكن عدها أو لا) موجود مباشرة على كائن محدد.

بناء الجملة

Object.getOwnPropertyNames(obj)

المعلمات

الكائنات

الكائن الذي سيتم إرجاع خصائصه الخاصة وغير المعدودة .

وصلة MDN | رابط MSDN

وصف

Object.getOwnPropertyNames() بإرجاع صفيف عناصره هي سلاسل الموافق خصائص enumerable وغير enumerable وجد مباشرة على الكائن. ترتيب الخصائص التي يمكن حصرها في الصفيف متناسق مع الترتيب الذي تم كشفه من خلال for...in حلقة (أو بواسطة Object.keys() ) فوق خصائص الكائن. لم يتم تعريف ترتيب الخصائص غير القابلة للتعداد في الصفيف ، وبين الخصائص التي لا تعد ولا تحصى.

أمثلة

`var arr = ['a', 'b', 'c']; console.log(Object.getOwnPropertyNames(arr).sort()); // logs '0,1,2,length'

// Array-like object var obj = { 0: 'a', 1: 'b', 2: 'c' }; console.log(Object.getOwnPropertyNames(obj).sort()); // logs '0,1,2'

// Logging property names and values using Array.forEach Object.getOwnPropertyNames(obj).forEach(function(val, idx, array) { console.log(val + ' -> ' + obj[val]); }); // logs // 0 -> a // 1 -> b // 2 -> c

// non-enumerable property var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; }, enumerable: false } }); my_obj.foo = 1;

console.log(Object.getOwnPropertyNames(my_obj).sort()); // logs 'foo,getFoo'

function Pasta(grain, size, shape) { this.grain = grain; this.size = size; this.shape = shape; }

var spaghetti = new Pasta("wheat", 2, "circle");

var names = Object.getOwnPropertyNames(spaghetti).filter(CheckKey); document.write(names);

// Check whether the first character of a string is 's'. function CheckKey(value) { var firstChar = value.substr(0, 1); if (firstChar.toLowerCase() == 's') return true; else return false; } // Output: // size,shape `