删除getter / setters Javascript

时间:2018-02-14 11:21:37

标签: javascript angularjs

我在angularjs

的$ scope变量中创建了一个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,请建议我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果条件是外部的,你可以随时将getter和setter都设置为undefined:

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

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

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