是否可以为 Object.defineProperty setter 函数设置多个参数?
例如
var Obj = function() {
var obj = {};
var _joe = 17;
Object.defineProperty(obj, "joe", {
get: function() { return _joe; },
set: function(newJoe, y) {
if (y) _joe = newJoe;
}
});
return obj;
}
我没有从语法中得到任何错误,但我不知道如何调用 setter 函数并向它传递两个参数。
最佳答案
Is it possible to have multiple parameters for Object.defineProperty setter function?
是的,但不可能调用它们(Object.getOwnPropertyDescriptor(obj, "joe").set(null, false)
除外)。使用分配给属性的一个值调用 setter (obj.joe = "doe";
) - 你不能分配多个一次值。
如果您确实需要它们(无论出于何种原因),最好使用基本的设置方法 (obj.setJoe(null, false)
)。
关于javascript - Object.defineProperty Setter 函数的多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18727205/