2016-09-23 2 views
1

J'ai un objet avec des propriétés/méthodes que je veux cacher certains d'entre euxPuis-je transmettre un tableau de propriétés sur 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; 
    }; 
} 

sur la syntaxe MDN:

Object.defineProperty(obj, prop, descriptor) 

Je me cache un peu en utilisant le code ci-dessous, je veux passer un tableau de quelques touches sur 'prop' est-il possible?

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

Répondre

0

Object.defineProperty accepte une seule clé adoptée en tant que chaîne.
La solution facile serait de simplement itérer sur les touches

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

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

Merci! Je n'y ai pas pensé: / – learningjavascriptks