公司的项目突然很忙,看书的进度明显慢下来了,不过还是继续慢慢的学...
for in 语句可以用来遍历一个对象中的所有属性名。这个枚举过程将会列出所有的属性——包括函数和可能不关心的原型中的属性,所以有必要过滤那些不想要的值。最常用的过滤器是 hasOwnPRoperty 方法,以及使用 typeof 来排除函数: var name; for (nameinanother_stooge) { if (typeof another_stooge[name] !== 'function') { document.writeln(name + ': ' + another_stooge[name]); } }属性名出现的顺序是不确定的,因此要对任何可能出现的顺序有所准备。如果想要确保属性以特定的顺序出现,最好的办法就是完全避免使用 for in 语句,而是创建一个数组,在其中以正确的顺序包含属性名: var i; var properties = [ 'first-name', 'middle-name', 'last-name', 'profession' ]; for (i = 0; i < properties.length; i++) { document.writeln(properties[i] + ': ' + another_stooge[properties[i]]); }通过使用 for 而不是 for in,可以得到我们想要的属性,而不用担心可能发掘出原型链中的属性,并且我们按正确的顺序取得了它们的值。新闻热点
疑难解答