标签:get 无法 var 技术分享 reac foreach 一个 cti new
for each (variable in object) {
  statement
}
variablevar关键字是可选的.该变量是函数的局部变量而不是语句块的局部变量.objectstatement{ ... }) 将多条语句括住.
一些对象的内置属性是无法被遍历到的,包括所有的内置方法,例如String对象的indexOf方法.不过,大部分的用户自定义属性都是可遍历的.
for...in 以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。
for (variable in object) { ...
}
参数:
variableobject
for..in 不应该被用来迭代一个下标顺序很重要的 Array .数组索引仅是可枚举的整数名,其他方面和别的普通对象属性没有什么区别。for...in 并不能够保证返回的是按一定顺序的索引,但是它会返回所有可枚举属性,包括非整数名称的和继承的。
因为迭代的顺序是依赖于执行环境的,所以数组遍历不一定按次序访问元素。 因此当迭代那些访问次序重要的 arrays 时用整数索引去进行 for 循环 (或者使用 Array.prototype.forEach() 或 for...of 循环) 。
如果你只要考虑对象本身的属性,而不是它的原型,那么使用 getOwnPropertyNames() 或执行  hasOwnProperty() 来确定某属性是否是对象本身的属性 (也能使用propertyIsEnumerable)。另外,如果你知道外部不存在任何的干扰代码,你可以扩展内置原型与检查方法。
var obj = {a:1, b:2, c:3};
    
for (var prop in obj) {
  console.log("obj." + prop + " = " + obj[prop]);
}
// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
var triangle = {a:1, b:2, c:3};
function ColoredTriangle() {
  this.color = "red";
}
ColoredTriangle.prototype = triangle;
var obj = new ColoredTriangle();
for (var prop in obj) {
  if( obj.hasOwnProperty( prop ) ) {
    console.log("o." + prop + " = " + obj[prop]);
  } 
}
// Output:
// "o.color = red"
for (variable of iterable) {
  statement
}
variableiterable 
标签:get 无法 var 技术分享 reac foreach 一个 cti new
原文地址:https://www.cnblogs.com/tigerqaq/p/9943058.html