gpt4 book ai didi

javascript - 如何使用for/in循环遍历js中的对象?

转载 作者:行者123 更新时间:2023-11-30 11:05:19 24 4
gpt4 key购买 nike

我读到:"for...in 循环的问题在于它会遍历 Prototype 链中的属性。当您使用 for...in 循环遍历对象时,您需要检查该属性是否属于该对象。您可以用 hasOwnProperty 做到这一点。”那么原型(prototype)链中的属性是什么以及如何 for/in 遍历它们?

我尝试在有和没有hasOwnProperty 的情况下运行代码但它给出了相同的结果

var myCar = {
color : "red" ,
type : "sedan" ,
price : "100,000" ,
model : "2020"
};
var prop ;
for (prop in myCar) {
if (myCar.hasOwnProperty(prop)){
console.log(prop + " : " + myCar[prop])
}
};

for (prop in myCar) {
console.log(prop + " : " + myCar[prop])
};

两个代码的结果是:红色类型:轿车价格:100,000型号:2020

最佳答案

您可以向对象的原型(prototype)添加属性,这些属性将被视为对象的属性,用于for..inhasOwnProperty()方法确定此属性是否是对象的直接属性。

您可以阅读更多关于 inheritance and the prototype chain here 的信息.

function Car() {
this.color = 'red';
this.type = 'sedan';
this.price = '100,000';
this.model = '2020';
}

Car.prototype.foo = 'bar';

const car = new Car();

console.log('Props');
for (let prop in car) {
console.log(`${prop}: ${car[prop]}`);
};

console.log('Own props');
for (let prop in car) {
if (car.hasOwnProperty(prop)){
console.log(`${prop}: ${car[prop]}`);
}
};

关于javascript - 如何使用for/in循环遍历js中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55895144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com