javascript – Object.defineProperty Setter函数的多个参数?

是否可以为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”;) – 您不能一次分配多个值.

如果你确实需要它们(无论出于何种原因),最好使用基本的setter方法(obj.setJoe(null,false)).

上一篇:Object中defineProperty数据描述


下一篇:Object.defineProperty()