# Object.getOwnPropertyNames()
მეთოდი აბრუნებს ***მასივს***, რომელიც შეიცავს უშუალოდ მოცემული ობიექტის ყველა ფროფერთის (non-enumerable ფროფერთების ჩათვლით, გარდა იმათი, რომელიც იყენებს Symbol-ს).
## Syntax
Object.getOwnPropertyNames(მოცემული ობიექტი)
## Description
enumerable ფროფერთებს აბრუნებს იმ თანმიმდევრობით, რომელიც დაბრუნდებოდა ***for...in*** ციკლის გადავლით(ან რასაც დააბრუნებდა ***Object.keys()*** მეთოდი).
ES6-ში ობიექტის რიცხობრივი key-ები ემატება მასივს პირველი, ზრდადობის მიხედვით, ხოლო შემდეგ სტრინგები - ობიექტში მათი დამატების მიხედვით.
ES5-ში თუ მეთოდზე გადაცემული მნიშვნელობა არ არის ობიექტი, TypeError-ს დაარტყამს
###### example
Object.getOwnPropertyNames('name');
// output : TypeError: "name" is not an object (ES5 code)
ES2015-ში არაობიექტი გადაითარგმენა ობიექტად
###### example
Object.getOwnPropertyNames('name');
//output: [ '0', '1', '2', '3', 'length' ] (ES2015 code)
## Examples
###### array example
const arr = ['n', 'a', 'm', 'e'];
console.log(Object.getOwnPropertyNames(arr).sort());
output:
[ '0', '1', '2', '3', 'length' ]
###### object example
let obj = {
name: 'Kris',
age: 25,
course: 'React',
};
console.log(Object.getOwnPropertyNames(obj).sort());
output:
[ 'age', 'course', 'name' ]
###### ციკლით გადავლა
Object.getOwnPropertyNames(obj).forEach(value => {
console.log(value + ' - ' + obj[value]);
});
output:
name - Kris
age - 25
course - React