如何访问对象的 getter 和 setter 函数?
How can i access getter and setter function of Object?
有一个对象具有 属性 命名密码。这个属性是调用set方法调用的。然后我将第二个setter方法定义为相同的property.But我想要第一个setter方法和第二个setter方法都work.For这个,我怎么能访问第一个 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;
}
});
有一个对象具有 属性 命名密码。这个属性是调用set方法调用的。然后我将第二个setter方法定义为相同的property.But我想要第一个setter方法和第二个setter方法都work.For这个,我怎么能访问第一个 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;
}
});