对象创建:
function Dog(name,color){ this.name=name; this.color=color; } Dog.prototype.shout=function(){ alert(this.name +" 汪汪汪..."); } Dog.prototype.age="11"; var dog=new Dog("旺财","白色");
判断对象是否是某个函数的原型
alert(Dog.prototype.isPrototypeOf(dog))//结果: true
检测对象的构造函数
alert(dog.constructor==Dog)//结果: true
判断对象的属性
hasOwnProperty & in
alert(dog.hasOwnProperty("name"));//结果: true alert(dog.hasOwnProperty("age"));//结果: false , age在原型对象的中定义 alert("age" in dog);//结果: true , 先dog对象中寻找age属性,未找到再去原型对象中找
对象遍历
for(var attr in dog){ alert(attr+" : "+dog[attr]); }
属性访问的两种写法:
var obj={}; obj.name="张三";//第一种 obj["sex"]="男";//第二种 obj["age"]=22; for(var attr in obj){ alert(attr+" : "+obj[attr]); }