Javascript可写描述符是否阻止实例更改?

Javascript可写描述符是否阻止实例更改?,第1张

Javascript可写描述符是否阻止实例更改?

是的,这是预期的行为。

它无声地失败了。

不完全是。或:仅在草率模式下。如果您

"use strict"
使用,您会得到一个

Error { message: "Invalid assignment in strict mode", … }

在线上

test4.answer = function() { return 0; };

可以在子类(test2)的原型上重载它,但不能在子类(test4)的实例上重载

这与实例与原型无关。您没有注意到的是,您正在使用不同的方法来创建重载属性:

  • 对继承且不可写的属性的分配失败
  • 一个
    Object.defineProperty
    电话刚创建了一个新的属性,除非对象是不可扩展的

您可以对实例执行相同的 *** 作:

Object.defineProperty(test4, "answer", {    value: function() { return 42; }});


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5476959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存