js对象枚举
使用for in关键字,对象属性名挨次。
访问属性对象点,内部转换括号间。
属性仅在对象中,含有自己属性通。
属性是否原型链,判断in字后边见。
判断包含有原型,实例左右构造停。
使用for in关键字,对象属性名挨次。
遍历对象使用 for 和 in 这两个关键字
for(var pro in obj){}
再循环的时候 对象的属性名字 会挨个 赋值到 pro 这个变量上 当然这个属性可以随便屈名字
访问属性对象点,内部转换括号间。
我们在编程的时候访问属性常用方式 obj.property 这样的操作内部实际上是转换成 obj[property]
<script>
var obj = {
name: "老铁",
age: 20,
show: function() {
console.log("handsome");
}
}
for (var pro in obj) {
console.log(pro + " == " + obj[pro]);
/*
name == 老铁
js.html:21 age == 20
js.html:21 show == function() {
console.log("handsome");
}
*/
}
属性仅在对象中,含有自己属性通。
遍历的时候有时候我们只是需要当前对象中的属性 而不是继承链上的
这个时候系统给我们提供了一个方法 ob.hasOwnProperty(属性名) 判断这个属性是当前对象而并非继承链
<script>
function Person() {
this.name = "小城贝尔";
this.age = "23";
this.tall = 180;
}
Person.prototype.handsome = 99;
Person.prototype.school = "西安体育学院";
Person.prototype.tall = 175;
var person = new Person();
for (var pro in person) {
console.log(pro + "===> " + person[pro]);
/*
name===> 小城贝尔
age===> 23
tall===> 180
handsome===> 99
school===> 西安体育学院
*/
}
//上边我们可以看到 这样会将原型链上的属性一并遍历出来 如果我们不想获得原型上的属性
// 就可以使用 obj.hasOwnProperty("属性名");判断是否是只属于 对象本身
for (var pro in person) {
if (person.hasOwnProperty(pro)) {
console.log(pro + "==\=> " + person[pro]);
/*
name===> 小城贝尔
age===> 23
tall===> 180
*/
}
}
</script>
属性是否原型链,判断in字后边见。
如果你只是想判断这个属性值 是属于这个对象原型链 那么 可以使用 in
属性名 in 对象 (属性名必须加引号不然会报错)
<script>
function Person() {
this.name = "小城贝尔";
this.age = "23";
this.tall = 180;
}
Person.prototype.handsome = 99;
Person.prototype.school = "西安体育学院";
Person.prototype.tall = 175;
var person = new Person();
var inres = "tall" in person; //true
var inres1 = "age" in person; //true
var inres2 = "school" in person; //true
console.log(inres);
console.log(inres1);
console.log(inres2);
</script>
property in 构造函数
判断包含有原型,实例左右构造停。
判断一个对象是不是通过某个构造函数构建出来的
A(对象) instance B (构造函数)
实际上是 判断的是 A 的原型链是否包含 B 的原型链
因为当你测试的时候 判断是否是它超类构造出来的结果也是true
<script>
function Person() {
this.name = "小城贝尔";
this.age = "23";
this.tall = 180;
}
Person.prototype.handsome = 99;
Person.prototype.school = "西安体育学院";
Person.prototype.tall = 175;
var person = new Person();
var ins = person instanceof Person; //true
var ins1 = person instanceof Object; //true
console.log(ins);
console.log(ins1);
</script>