gpt4 book ai didi

javascript - 除了执行 Object.prototype.hasOwnProperty.call(obj, key) 是否有 ES6+ 替代方案?

转载 作者:数据小太阳 更新时间:2023-10-29 04:38:02 31 4
gpt4 key购买 nike

检查对象是否具有特定键的最可靠方法是:

Object.prototype.hasOwnProperty.call(obj, key)

这提供了一定的保证:如果 keyobjdirect 属性,它只会评估为 true ,即使 obj 没有通常的 Object 作为其原型(prototype)(例如,如果它是用 const obj = Object.create 创建的) (null)).

但这是一口。

在 ES6 或更高版本中是否有任何新的语法/方法(包括 polyfillable 或 Babel 可编译的“建议”)提供相同的保证,但以更好、更易读的方式?

最佳答案

我不知道这有什么语法糖。但是你不需要经常使用它1,所以偶尔写出来应该不会太糟糕。一个equivalent shorter version会是

({}).hasOwnProperty.call(obj, key)

如果你真的需要更频繁地使用它,只需定义一个辅助函数:

const hasOwn = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
const hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty);

1:在大多数情况下,您可以省略检查,使用 in 代替,或者应该使用 Map 及其舒适的 has method .

关于javascript - 除了执行 Object.prototype.hasOwnProperty.call(obj, key) 是否有 ES6+ 替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45215727/

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