Javascript Object.keys(my_obj) return the keys (ie enumerable property) of my_obj in an array.
But looping in Object.keys(my_obj) array return the methods of my_obj.
Does somebody understand this behaviour ?
Object.prototype.log_key = function() {
  keys = Object.keys(this)
  console.log('log Object.keys() array return enumerable property', keys)
  for (const k in keys) {
    console.log('loop in Object.keys() array return method', k)
  }
}
var my_obj = {
  testkey: 'testvalue'
}
my_obj.log_key();Output:
log Object.keys() array return enumerable property [ 'testkey' ]
loop in Object.keys() array return methods 0
loop in Object.keys() array return methods log_key
 
     
    