代码:
let user = {
name: 'john',
age: 17,
date: new Date(),
date1: null,
order: {
id: 123,
price: '19yuan'
},
sayHi: function(){}
}
user.sayHi.content = "hello";
let person = {isHuman: true};
user.__proto__ = person;
function iterateThroughAllKeysAndValues(obj) {
for(let key in obj) {
if(!obj.hasOwnProperty(key)) return;
console.log(key, obj[key]);
if(typeof obj[key] == 'object' || typeof obj[key] == 'function') {
iterateThroughAllKeysAndValues(obj[key]);
}
}
}
iterateThroughAllKeysAndValues(user)
知识点
- for…in 遍历对象的所有属性,包括对象的原型属性,但不包括自身和原型的不可枚举的属性
- obj.hasOwnProperty(key) 判断属性是否是自身拥有的属性