微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

__proto__ 在 Javascript 中声明在哪里?

如何解决__proto__ 在 Javascript 中声明在哪里?

考虑这个例子:

df['date'] = df['date'].apply(lambda x: pd.to_datetime(str(x)+'1',format='%Y%W%w'))
style_format = {'date':'{:%Y%W}'}
df.style.format(style_format)

如果 var a = {} a.b =5 a.hasOwnProperty("b") // return True a.hasOwnProperty("__proto__") // returns False 本身没有声明为对象自己的属性,则

  1. __proto__ 属性在哪里声明?
  2. 搜索原型链时如何引用该属性,如果它本身不是对象自己的属性

解决方法

__proto__ 属性属于在 Object.prototypeprototype 对象中声明的 Object,而不是您代码中对象 a 的自己的属性。这就是为什么当你这样做时它返回 false 的原因。

a.hasOwnProperty("__proto__") // returns False

如果你这样做:

console.log(Object.prototype.hasOwnProperty("__proto__")) // returns true

这将返回 true,因为 __proto__Object.prototype 的自己的财产

console.log(Object.prototype.hasOwnProperty("__proto__")) 

** 第 2 部分:**

__proto__ 属性是 Object.prototype 上的一个简单访问器属性,由 gettersetter 函数组成。最终查询 __proto__Object.prototype 的属性访问会找到此属性,但不查询 Object.prototype 的访问不会。如果在查询 __proto__ 之前找到其他 Object.prototype 属性,该属性将隐藏在 Object.prototype.

上找到的属性

这就是它在原型链中找到的方式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。