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

js中如何删除已定义的getter/setter?

js中如何删除已定义的getter/setter?

四季花海 2018-12-14 15:14:43
__defineGetter__只能覆盖,有没有__removeGetter__这种呢?因为把对象当哈希表时,总要避讳__proto__特殊键的存在是很烦的…(Object.create(null)也无法解决这个问题)后来才发现,它不是一个引擎层的死设定,而是做成了getter/setter模式,换言之是有可能透明处理的,所以才有此一问。——要是__proto__特殊属性当时做成Symbol.iterator那样该多好…
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

供参考


function cleanse (obj) {

  var proto

  Object.defineProperty(obj, '__proto__', {

    enumerable: true,

    configurable: true,

    get: function () { return proto },

    set: function (val) { proto = val }

  })

  return obj

}


var a = cleanse({})

a.__proto__ = 2

哈希表最好还是用 Map


查看完整回答
反对 回复 2019-01-13
  • 1 回答
  • 0 关注
  • 501 浏览
慕课专栏
更多

添加回答

举报

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