如何返回对象的所有属性及其值,包括可迭代对象,自定义对象和继承对象?

时间:2016-10-29 07:25:13

标签: javascript

到目前为止,我已经学会了:

1)for循环,我可以用来迭代对象中的索引,例如具有数字索引的键的数组。

2)for..in循环也为我提供了可迭代和自定义属性以及继承属性。但是,它会遗漏其值未定义的属性。

例如

var array = [ 'Apples', , 'Pear' ];

array.newFn = function () { };
Array.prototype.anotherFn = function() { };
array.foo = bar;

for (var prop in array)
  console.log(prop);

将遗漏索引1,因为其值为undefined

然而,它会迭代newFnanotherFnfoo

3)for..of迭代值而不是键。不同之处在于,它仅迭代所有可迭代属性,省略了自定义属性,并省略了从原型链继承的那些属性。但是,这样做包括属性键或属性值或两者都具有值undefined的值。同样,它仅包含对象的可迭代自身属性。

是否存在迭代的循环结构:

  1. 所有可迭代属性;和
  2. 自定义的;和
  3. 那些从原型开始一直下来的人?
  4. 迭代密钥?一旦我拿到钥匙,我就可以得到价值。

    如果没有内置循环结构,Object keys上必须有一些反射属性,或者某些反射属性可以让我看一眼?

1 个答案:

答案 0 :(得分:3)

最简单的方法是使用void将索引设置为QMainWindow。您也可以使用undefined

null