js对象枚举
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";
js原型和原型链的理解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>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论