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>
