Add `Object.hasOwn` to Section 3.7 (Object.prototype methods)
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 48/100
- Issue 类型
- 文档
- 描述清晰度
- 描述清楚
- 活跃度
- 停滞
- 技术栈
- eslint, javascript
调研方向
从 JavaScript 风格指南中的第 3.7 节“Object.prototype methods”开始,并查阅有关 Object.hasOwn 和 prefer-object-has-own 的链接 MDN 和 ESLint 文档。更新该节的措辞和示例以涵盖 Object.hasOwn,然后验证这些指导准确反映所引用的浏览器支持情况和 ESLint 规则。
由索引模型根据 Issue 内容生成。
描述
Hello, it seems that Object.hasOwn is now available in most major browsers (https://caniuse.com/mdn-javascript_builtins_object_hasown), so it might be worth adding it to section 3.7.
It seems to be recommended as a replacement for Object.hasOwnProperty (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn), so the section could be changed to something like this:
-
3.7 Do not call
Object.prototypemethods directly, such ashasOwnProperty,propertyIsEnumerable, andisPrototypeOf. eslint:no-prototype-builtinsWhy? These methods may be shadowed by properties on the object in question - consider
{ hasOwnProperty: false }- or, the object may be a null object (Object.create(null)). In modern browsersObject.hasOwncan be used, which works for null objects and objects, wherehasOwnPropertyhas been overridden.// bad console.log(object.hasOwnProperty(key)); // good console.log(Object.prototype.hasOwnProperty.call(object, key)); // better const has = Object.prototype.hasOwnProperty; // cache the lookup once, in module scope. console.log(has.call(object, key)); // best console.log(object.hasOwn(key)); /* or */ import has from 'has'; // https://www.npmjs.com/package/has console.log(has(object, key));
There is also a rule for this available in eslint 8.5+ (https://eslint.org/docs/latest/rules/prefer-object-has-own).
Cheers
- 主要语言
- JavaScript
- 星标
- 148k
- 派生
- 26.6k
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
airbnb/javascript 的其他 Issue
-
Severity: Unhandled promise rejection in `whitespace-async.js` when ESLint async path is used可能已有人在做 @bodapatisaikrishna 于 24 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
airbnb/javascript#3237 · 6 条评论 ·
-
Inconsistent semicolon usage in examples (Arrays vs Functions)可能已有人在做 @Developer-shivamMishra 于 15 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
airbnb/javascript#3152 · 4 条评论 ·
-
No error handling around execSync + JSON.parse in whitespace.js (ESLint 9 path)可能已有人在做 @dataCenter430 于 220 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 48/100
airbnb/javascript#3238 · 8 条评论 ·
-
Upgrading eslint-plugin-react-hooks可能已有人在做 @weihongyu12 于 365 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 38/100
airbnb/javascript#3186 · 3 条评论 · 2 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 45/100
airbnb/javascript#3173 · 9 条评论 · 1 个 reaction ·
查看 airbnb/javascript 的全部 Issue
相似的 Issue
-
Harden bayesian-waves-bg.js: add prefers-reduced-motion, pointer-events guard, and hidden-tab pause未关闭
难度 2/5 1-3 小时 新手友好度 85/100
-
难度 1/5 1 小时以内 新手友好度 90/100
njitacm/njit-acm-website#109 ·
-
type: bug
难度 2/5 1-3 小时 新手友好度 76/100
blamechris/chroxy#8579 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 66/100
modusensus/dsh-mneme#411 ·
-
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复