📅  最后修改于: 2023-12-03 15:31:38.072000             🧑  作者: Mango
Object.prototype.__defineSetter__()
方法允许向对象的属性设置一个 setter 方法,当属性值被修改时,将调用该方法。
obj.__defineSetter__(prop, setter)
参数解析:
prop
:必填,要定义 setter 方法的属性名。setter
:必填,要定义的 setter 方法。该方法无返回值。
我们来看一个简单的示例。假设我们创建了一个名为 person
的对象,现在我们要向该对象中添加一个 age
属性,并在 age
属性被设置时,打印一条日志:
const person = {};
person.__defineSetter__("age", function(val) {
console.log(`设置了 age,新值为 ${val}`);
});
person.age = 18; // 输出:设置了 age,新值为 18
在上述代码中,我们使用了 __defineSetter__()
方法向 person
对象添加了一个 age
属性,并定义了一个 setter 方法,在该属性被设置时,会打印一条日志。接着,我们对 age
属性进行了赋值操作,观察控制台输出的结果。
Object.defineProperty()
方法代替。