Как я могу удалить поля прототипа из объекта? - PullRequest
0 голосов
/ 17 декабря 2018

Как я могу удалить поля прототипа из объекта, кроме того, с помощью этого метода?

const input = {foo: 'bar', __proto__: {unwanted: 'things'}}
expect(JSON.parse(JSON.stringify(input))).toEqual({foo: 'bar'})  // true
// this works but is there a cleaner way ?

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

вы можете использовать Object.create и передать ему null, что создаст чистый объект без свойства prototype, затем вы можете создать свои свойства для этого объекта, но учтите, что вы не можете использовать Object.prototype методы, такие какhasOwnProperty(), toString(), valueOf() и т. Д.

const input = Object.create(null);
input.foo = 'bar';
console.log(input);
0 голосов
/ 17 декабря 2018

это зависит от того, чего вы пытаетесь достичь, но я бы обычно рекомендовал .hasOwnProperty для проверки, является ли поле прототипом поля

ссылка: MDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...