В JavaScript есть три способа пересечения свойства объекта:
1. для/в. Вы можете использовать утверждение FOR/in, чтобы пройти собственное свойство объекта (собственное свойство) и свойство, унаследованное от объекта прототипа. Только перечисляемое свойство будет пересечено.
2.object.keys (). Вы можете передавать объекты в виде параметров в object.keys (), а оператор Object.keys () вернет массив, состоящий из всех строк имени свойства. Оператор Object.Keys () возвращает только (собственное свойство) и перечисляемое свойство самого объекта. Это утверждение действителен только в стандарте Ecmascript 5.
3.object.getOwnPropertyNames (). Вы можете передать объект в качестве параметра в object.getownpropertynames (). Как object.keys (), это утверждение вернет массив, состоящий из всех строк имени свойства. В отличие от Object.keys (), оператор Object.getOwnPropertyNames () возвращает собственное свойство объектов (собственное свойство) независимо от того, перечисляется оно или нет. Это утверждение действителен только в стандарте Ecmascript 5.
На основе вышеуказанной информации, следующее рисунок суммируется следующим образом:
Эксперимент:
Кода -копия выглядит следующим образом:
var O = {x: 1, y: 2};
var a = object.create (o);
AZ = 3;
для (p в а) {
console.log (p);
} // zxy
console.log (object.keys (a)); // ["z"]
console.log (object.getownpropertynames (a)); // ["z"]