<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>for-in 枚举</title> </head> <body> <script> function Person(){ this.name="person"; this.age=10; this.sex="male"; } Person.prototype.say=function(){ alert("Hello,world!"); } var person1=new Person(); person1.name="peter"; person1.age=20; person1.sex="female"; person1.family=20; for(var key in person1){ if(!!person1.hasOwnProperty(key)){console.log(key+":"+person1[key]);} //此时用person1.key是无法取到值的,因为可以是字符串,不能应用.操作符 } </script> </body> </html>
for-in枚举对象属性注意:
1、输出属性的顺序不一定,根据浏览器而异;
2、不能用person1.key的方式取到属性值,应该用person1[key]的方式取得属性值。
3、如果要表示迭代的对象为null或者undefined,for-in语句会抛出错误,但是ECMAScript更正了这一行为,对于这种情况,不抛错,而是不执行循环体。
时间: 2024-10-08 19:43:07