我可以在object.defineProperty()上传递属性数组吗?

时间:2016-09-23 18:32:13

标签: javascript object

我有一个带有属性/方法的对象,我想隐藏其中的一些

var Cons = function(str) {
  var ab = str.split(' '); 
  this.a= ab[0];
  this.b= ab[1];
  this.geta = function() {
    return this.a;
  };
  this.getb = function() {
    return this.b;
  };
}

关于MDN语法:

Object.defineProperty(obj, prop, descriptor)

我使用下面的代码隐藏了一些,我想在'prop'上传递一些键的数组是否可能?

Object.defineProperty(obj, 'prop', {
  enumerable: false
});

1 个答案:

答案 0 :(得分:0)

Object.defineProperty只接受以字符串形式传入的单个键 简单的解决方案是迭代密钥

var keys = ['prop1','prop2','prop3'];

keys.forEach(function(key) {
    Object.defineProperty(obj, key, {
        enumerable: false
    });
});