为了账号安全,请及时绑定邮箱和手机立即绑定

为什么是Object.defineProperty()而不是this.defineProperty

为什么是Object.defineProperty()而不是this.defineProperty

守着星空守着你 2019-09-06 15:38:22
我正在研究一个JavaScript项目,只是想知道为什么对象实例不继承defineProperty()和其他方法,而不是必须调用超类(superobject?)Object方法。我查看了MDN文档,实际上有“非标准”属性方法。但那些被弃用了。为什么要采取这些Object方法呢?在我看来,像是instance.defineProperty(...)更好的东西Object.defineProperty(instance, ...)。我也会对其他一些Object方法说同样的话。
查看完整描述

3 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

有趣。到目前为止,我提出的唯一原因是人们喜欢重写原型并将此方法“隐藏”,这样可以帮助您避免一些错误。特别是因为方法名称很好,因为比例如更容易被重写__defineGetter__。


似乎许多功能都依赖于此功能(链接),因此在此上下文中使其更加全局和安全是有意义的。


查看完整回答
反对 回复 2019-09-06
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

这样做是为了避免冲突 - 记住,每个方法Object.prototype都是每个用户定义对象中的一个方法。


想象一个你想要一个自定义方法的对象defineProperty- 当Object.defineProperty它在原型上时会完全破坏它。


查看完整回答
反对 回复 2019-09-06
  • 3 回答
  • 0 关注
  • 702 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信