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

75 lines
2.8 KiB
Markdown
Raw Normal View History

2018-10-12 16:00:59 -04:00
---
title: Object getOwnPropertyNames
localeTitle: Объект getOwnPropertyNames
---
Метод `Object.getOwnPropertyNames()` возвращает массив всех свойств (перечисляемых или нет), найденных непосредственно на заданном объекте.
## Синтаксис
```
Object.getOwnPropertyNames(obj)
```
### параметры
**OBJ**
Объект, чьи перечислимые _и неперечислимые_ собственные свойства должны быть возвращены.
[Ссылка MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames) | [Ссылка MSDN](https://msdn.microsoft.com/en-us/LIBRary/ff688126%28v=vs.94%29.aspx)
## Описание
`Object.getOwnPropertyNames()` возвращает массив, чьи элементы являются строками, соответствующими перечислимым _и неперечислимым_ свойствам, найденным непосредственно на объекте. Порядок перечисляемых свойств в массиве согласуется с порядком, выставленным с помощью цикла `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
```