javascript - hasOwnProperty 是遍历原型(prototype)链

标签 javascript

今天我注意到 hasOwnProperty 方法有一些奇怪的行为。

我在完全支持 ES6 类的环境中,因此无需担心转换。

上面的代码片段应该分别返回 true 和 false,但它在两者上都返回 true。

class Stuff {
  constructor() { this.something = 'something'; }
}
class MoreStuff extends Stuff {}
const stuff = new Stuff();
const moreStuff = new MoreStuff();

console.log(Object.prototype.hasOwnProperty.call(stuff, 'something'));
console.log(Object.prototype.hasOwnProperty.call(moreStuff, 'something'));

也许我在这里遗漏了一些东西,但据我所知,东西上存在某些东西并且它在 moreStuff 上继承,但似乎两者都存在。 我缺少什么?

最佳答案

Stuff 构造函数将“something”属性直接放在构造的对象上。无论您是创建父类还是继承类的实例,都是如此。不涉及原型(prototype)链。

关于javascript - hasOwnProperty 是遍历原型(prototype)链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56113060/

相关文章:

javascript - 动态搜索div列表

javascript - 使用 try 和 catch 语句处理异步 http 错误

javascript - JQuery UI 可选() : Check if only one element is selected

javascript - 如何使用console.log打印出哪个函数调用了一段代码?

Javascript 数组问题

javascript - 获取kendo调度程序中选定 View 的开始和结束日期以过滤数据库查询中的事件

javascript - 这两个函数定义有不同的行为

javascript - 每次使用 CasperJS 更改 url 时如何获取页面标题

javascript - Tampermonkey - 匹配默认起始页

javascript - 在 JQuery 中查找本月的第三个星期日