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

标签 javascript setter defineproperty

是否可以为 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/

相关文章:

javascript - 互斥 - jwPlayer

javascript - 傻瓜的 Getter\setter

javascript - 访问 JavaScript 对象的默认 getter/setter

javascript - 将 Object.defineProperties 与符号一起使用是否有效?

javascript - 客户更新请求可通过 POSTMAN 处理,但无法使用 Shopify 私有(private)应用程序通过 AJAX 处理

javascript - Angular $q 然后 hell

javascript - 使用 javascript/jquery 从字符串元素中删除内联样式

java - Java 中的 Setter Getter 数组

java - 将 get 和 set 方法组合成一个方法是不好的做法吗

javascript - Object.defineProperty 在我的 React.js 应用程序中调用非对象