Delete getters/setters Javascript



我在$ scope变量的aglularjs

中创建了一个getter/setter
  Object.defineProperty($scope,
      "isActive", {
        enumerable: true,
        configurable: true,
        get: function get() {
          return $scope.controlStatus;
        },
        set: function set(val) {
          $scope.controlStatus = val;
          _.isFunction($scope.callback) ? $scope.callback({ id: $scope.for, status: val }) : null;
        } });

我想在特定条件下删除此Getter/Setter,请建议我该怎么做?

如果条件是外部的,则可以在事实之后始终将getter和setter设置为未定义:

Object.defineProperty($scope,
  "isActive", {
    enumerable: true,
    configurable: true,
    get: undefined,
    set: undefined
  }
);

作为替代方案,您可以将对象解析为属性,例如:

$scope.isActive = JSON.parse(JSON.stringify($scope.isActive));

最新更新