gpt4 book ai didi

javascript - hasOwnProperty 是否仍应与 for..in 语句一起使用

转载 作者:可可西里 更新时间:2023-11-01 02:31:34 26 4
gpt4 key购买 nike

有很多博客说只要使用 for..in 循环就应该使用 hasOwnProperty 检查,但我不明白为什么会这样案件。无论是否进行检查,我们都会得到相同的结果。

查看 this fiddle .

最佳答案

如果您使用 {} 创建一个基本对象,或者使用 JSON.parse 从 JSON 获取它,那么 hasOwnProperty 是全局的没用。

但是如果您正在扩展一个“类”(使用原型(prototype)),那么它可以帮助您了解您是否正在访问您的“自己的属性”(直接属性,包括直接函数)。

请注意,一个基本对象至少有一个(不是直接的)属性,您可以通过 console.log({});console.log({}.toString )it's not enumerable and not seenfor...in 循环中:

A for...in loop does not iterate over non–enumerable properties.Objects created from built–in constructors like Array and Object haveinherited non–enumerable properties from Object.prototype andString.prototype that are not enumerable, such as String's indexOfmethod or Object's toString method. The loop will iterate over allenumerable properties of the object or that it inherits from itsconstructor's prototype (including any which overwrite built-inproperties).

关于javascript - hasOwnProperty 是否仍应与 for..in 语句一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11313982/

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