js对象属性枚举

代码

        var a={name:"wangmudan",age:12}
        for (var pro in a) {
            console.log(a[pro]);//此时必须加上[]
        }
  • for in 的特点.此种方式遍历出来的对象的属性会包含原型中人为定义的属性;也会打印出函数的引用
function A(){
            this.name="wangmazi";
            this.age=12;
                  this.getName=function(){
                console.log("我是打酱油的");
            }
        }
        A.prototype.sex="nan";
        var a=new A();
        for(pro in a){
            console.log(a[pro]);
                //wangmazi 12 ƒ (){console.log("我是打酱油的");} nan
        }
function A(){
            this.name="wangmazi";
            this.age=12;
            this.getName=function(){
                console.log("我是打酱油的");
            }
        }
        A.prototype.sex="nan";
        var a=new A();
        for(pro in a){
            if (a.hasOwnProperty(pro)) {//此时不打印原型中的方法
                console.log(a[pro]);
            }
        }
  • in --判断此对象是否可以访问某个属性
    "age" in a;//true
  • instanceof: A instanceof B ;判断A是不是B构造出来的对象.
    或者判断A的原型链上有没有B构造函数 的原型.此处的B必须是构造函数名
function A(){
            this.name="wangmazi";
            this.age=12;
            this.getName=function(){
                console.log("我是打酱油的");
            }
        }
        function B(){

        }
        A.prototype=new B();
        var a=new A();
        console.log(A.prototype instanceof B);//true
                console.log(a instanceof B);//true

你可能感兴趣的:(js对象属性枚举)