可以通过 **for in** 循环来遍历对象(类似与Java的加强for)
var obj = {
name : ‘haha’,
age : 15,
sex : ‘male’
}
for(var value in obj){
console.log(value);
}
//输出 name age sex
//若想输出属性值 不能直接 console.log(obj.value); 因为实际上访问的是 obj[‘value’] 即得到的是索引
//即结果都是undefined
//若想输出属性值 只能 console.log( obj[value] );
*可以通过 对象.hasOwnProperty(属性名)** 来判断该属性是否是属于对象自己的属性(即是我们设置的) 不包括系统自设的
返回值是布尔值
var obj = {
name : ‘haha’,
proto : {
age : 15
}
}
for(var value in obj){
if(obj.hasOwnProperty(value)){
console.log(value);
}
}
//结果只输出name
//proto是系统自设的 即使我们修改了其值 这个属性也是系统设置的
属性名.in.对象** 是用来判断当前对象能不能访问到这个属性 即使这个属性不是自己的
注意属性名要写成字符串形式
var obj = {
name : ‘haha’,
proto : {
age : 15
}
}
console.log(‘proto‘ in obj);
//结果输出true
* A instanceof B** 判断A对象的原型链上有没有B的原型
如
function Person(){}
var person = new Person{}
console.log(person instanceof Person);
console.log(person instanceof Object);
//输出 true true