for-in枚举对象属性

<!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

for-in枚举对象属性的相关文章

vb6 枚举对象属性

Option Explicit '引用Library TLI ' C:\WINDOWS\system32\TLBINF32.DLL ' TypeLib Information Private Sub Form_Load() Dim oTLB As InterfaceInfo, I As Long Set oTLB = TLI.InterfaceInfoFromObject(Me) Debug.Print oTLB.Name For I = 1 To oTLB.Members.Count Sele

JavaScript服务器端开发技术(对象属性的枚举与查询)

既然对象是属性的集合,那么检测与枚举集合中的属性就是一项重要任务.对此,我们来分别看一下ES3和ES5提供的解决方案. 1)     ES3枚举方案 示例代码: var contacts={ ID:[0,1,2,3,4,5], names:["Zero","One","Two","Three","Four","Five"], addresses:[ { Street:"ABC&

JS 对象属性相关--检查属性、枚举属性等

1.删除属性 delete运算符可以删除对象的属性 delete person.age //即person不再有属性age delete person['age'] //或者这样 delete只是断开属性和宿主对象的联系,而不会去操作属性中的属性  看到delete a.p之后b.x仍然为1 var a = {p:{x:1}}; var b = a.p; console.log(a.p.x); //1 delete a.p; console.log(a.p.x); //TypeError a.p

JavaScript服务器编程(对象属性枚举中应当避免原型污染问题)

前面文章中讨论了JS开发中对象属性枚举的ES3和ES5方案并给出了一组常用工具函数,其实,企业开发中真正应用时还存在不少问题.本文想基于前文进一步探讨一下有关原型污染的问题.由于JS的先天不足,有关原型污染背后隐藏着一个大的"故事",以后我们的文章中还要涉及其中一些情节. 问题 前面在讨论使用in运算符检测对象中是否存在属性的方案,但是通过所举的示例也发现一个问题,例如: console.log('"ID" in contacts: ',"ID"

3.Object.keys() 取得对象中所有可枚举的属性

Object.keys() 取得对象中所有可枚举的属性 function Person(){ }Person.prototype.name="summer";Person.prototype.age=20;Person.prototype.job="enginner";Person.prototype.sayName=function(){ console.log(this.name);} var keys=Object.keys(Person.prototype)

javascript原型模式(枚举对象的属性)

1.理解原型对象 function Person() { } Person.prototype.name = "Nicholas"; Person.prototype.age = 28; Person.prototype.job = "Software Engineer"; Person.prototype.sayName = function () { alert(this.name); }; var person1 = new Person(); person1

对象属性的可枚举性

JavaScript中对象的属性分为两种:数据属性和访问器属性.然后根据具体的上下文环境的不同,又可以将属性分为:原型属性和实例属性.原型属性是定义在对象的原型(prototype)中的属性,而实例属性一方面来自构造的函数中,然后就是构造函数实例化后添加的新属性. 在JavaScript中除了检测对象的属性是否存在,还会经常对对象的属性进行遍历(枚举).而在JavaScript中遍历一个对象的属性并不太简单,主要有两个原因: JavaScript中的对象通常都处在某个原型链中,它会从一个或多个的

ja对象属性—枚举、检查、删除

前言 我们经常需要操作对象的属性.这里记录ES5中操作对象属性的API和它们之间的差异. 枚举属性 for/in遍历对象中的所有可枚举属性(包括自有属性和继承属性) var obj = {name:"小花",age:18}; var obj2 = Object.create(obj); obj2.like = "骨头"; for(item in obj2){ // 将obj中的所有可枚举属性名以字符串形式分别赋值给itemtypeof item; => str

Object对象属性

属性分为自身的和继承的属性 获取自身的属性 Object.getOwnPrototypeNames(obj)//仅获取自身的所有属性(包括不可枚举的) 仅获取可枚举的 Object.keys(obj) 判断某属性是否是自身属性 Date.hasOwnProperty('length') // true Date.hasOwnProperty('toString') // false 对象属性的遍历 1.判断某属性是否是对象的属性 "length" in obj;//true 2.遍历对