Object.keys()返回对象可枚举的属性,但是循环Object.keys()返回Object方法? [重复]

问题描述 投票:0回答:1

Javascript Object.keys(my_obj)array中返回my_objkeys(即可枚举属性)。

但是Object.keys(my_obj)array中的循环返回my_obj方法

有人了解这种行为吗?

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();

输出:

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
javascript key prototype
1个回答
0
投票

for...in循环为您提供数组的索引。这就是为什么登录k时得到0的原因。它是数组中的第一个也是唯一的项目。

如果需要实际的项目,则可以改用for...of

© www.soinside.com 2019 - 2024. All rights reserved.