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]);//遞歸遍歷屬性值的子屬性。
}
}
}
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]);//遞歸遍歷屬性值的子屬性。
}
}
}