2016-09-23 2 views
1

У меня есть объект со свойствами/методы, которые я хочу, чтобы скрыть некоторые из нихМогу ли я передать массив свойств на object.defineProperty()?

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 
}); 

ответ

0

Object.defineProperty принимает только один ключ передается в виде строки.
Простое решение было бы просто перебирать ключи

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

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

Спасибо! Я не думал об этом: / – learningjavascriptks