Is .hasOwnProperty () required for for..in in Node.js?

When I do for..in, can I refuse a check if (obj.hasOwnProperty(key)) {...}in Node.js if I try never to change it Object.prototypemyself?

Or, if I am require()any third-party package that has a modification Object.prototype, will this also mask Object.prototypefor my module?

+4
source share
2 answers

Can I refuse if (obj.hasOwnProperty (key)) {...} check Node.js if I am careful never to modify Object.prototype itself?

, . , , ( , ), , . - . , -, , .

node_modules/breakit.js

Object.prototype.foobar = () => "borked";
module.exports = true;

Node..

> require('breakit');
true
> let a = {};
> for ( let k in a ) { console.log(k) }
foobar
> a.foobar();
borked

, .hasOwnProperty for.., , , . air-bnb eslint, , .

+1

node , . lodash, _.forOwn() https://lodash.com/docs#forOwn

:

Object.getOwnPropertyNames(yourObj)
.forEach(function(keyName) {
  yourObj[keyName] // do stuff
});

"", , , , .

+1

All Articles