如何访问 Object 的 getter 和 setter 函数?

埃菲·泽贝克

有一个对象具有名为 password 的属性。该属性是通过调用 set 方法来调用的。然后我将第二个 setter 方法定义为相同的属性。但我希望第一个 setter 方法和第二个 setter 方法都可以工作。为此,我如何访问第一个 setter 函数?

//constant code
var obj = {
  get password() {
            return this._password;
        },
  set password(val) {
            this._password = new TextEncoder().encode(val);
        }
}
Object.defineProperty(obj,"password",{set:function(val){
//exectue first setter function of password
//execute second setter
this._password=val;}})

我只能修改代码。我也无法对代码进行任何更改。

如何访问第一个 setter 函数?

安德烈斯

您可以保留原始版本的 setter 以在新版本中调用它:

const originalSetPassword = Object.getOwnPropertyDescriptor(obj, "password").set;
Object.defineProperty(obj, "password", {
  set: function(val) {
    originalSetPassword.call(obj, val);
    this._password=val;
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章