for...in循环

来源:互联网 发布:mysql 修改字段注释 编辑:程序博客网 时间:2024/06/05 23:02

for...in循环用来遍历一个对象的全部属性。

var o = {a:1, b:2, c:3};for (i in o){    console.log(o[i]);}// 1// 2// 3

注意,for...in循环遍历的是对象所有可enumberable的属性,其中不仅包括定义在对象本身的属性,还包括对象继承的属性。

function Person(name) {    this.name = name;}Person.prototype.describe = function () {    return 'Name: '+this.name;};var person = new Person('Jane');for (var key in person) {    console.log(key);}// name// describe

上面代码中,name是对象本身的属性,describe是对象继承的属性,for-in循环的遍历会包括这两者。

如果只想遍历对象本身的属性,可以使用hasOwnProperty方法,在循环内部做一个判断。

for (var key in person) {    if (person.hasOwnProperty(key)) {        console.log(key);    }}// name
0 0
原创粉丝点击