代码
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