gpt4 book ai didi

javascript - 是否有一种 jQuery 方法可以仅迭代对象自己的属性?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:35:16 26 4
gpt4 key购买 nike

我正在制作一个类似 jQuery 的小型库,令我感到奇怪的是 $.each 的行为。 .

在 javascript 中我们有一个 for...in循环:

for (var key in obj) {
console.log(key + ': ' + obj[key]);
}

这样做的问题在于,它也会遍历继承 的属性,即来自对象构造函数原型(prototype)的属性。

可以使用 hasOwnProperty 知道这一点, 例如。而 jQuery 可以做到这一点。

但是,当您将一个对象传递给 $.each 时,它的行为完全就像一个 for...in,迭代继承属性也是如此。它也应该稍微慢一些,并且需要输入更多的字符。

检查 this fiddle看到它在行动和look here $.each 的源代码。

所以我的问题是,jQuery 中是否有一个object 迭代方法只包含自己的属性?如果不是,图书馆应该这样做吗?

编辑: 由于 jQuery 不会这样做,如果这有用,您也可以回答。我的意思是,我看不到自己想要迭代原型(prototype)属性,但也许我遗漏了什么。

最佳答案

jQuery 行为是有道理的,因为您始终可以选择在循环中添加 hasOwnProperty 检查 - 或者不添加。

我可以看到循环遍历继承的属性在某些情况下可能很有用(克隆或子类化或任何你称之为的东西)。

关于javascript - 是否有一种 jQuery 方法可以仅迭代对象自己的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13688337/

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