起因
今天面试的时候,随机的问了一句,你知道Object,.keys和for-in以及for-of的区别是啥?
那个面试的吭哧了半天,就说都能够获取到key值,其它的啥也说不出来.
下面呢,我就展开说说他们的一些用法和区别吧
各种循环
for-in
-
for…in语句以任意顺序迭代一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。
-
for … in是为遍历对象属性而构建的,
基本用法
var obj = {
a:1, b:2, c:3};
for (var prop in obj) {
console.log("obj." + prop + " = " + obj[prop]);
}
for-in可以遍历原型对象上的方法
var triangle = {
a: 1, b: 2, c: 3 };
var obj = {
color: 'red' }
// 设置obj的原型对象为triangle
Object.setPrototypeOf(obj, triangle)
for (var prop in obj) {
console.log(`obj.${
prop} = ${
obj[prop]}`);
}