Estoy usando un patrón de módulo en JS. Tratando de hacer 2 propiedades privadas cuya primera propiedad contendrá el número, es decir, 3. La segunda propiedad es una matriz de cadenas que contienen los elementos. lo he estado intentando pero me da error (indefinido)
//MODULE DESIGN PATTERN var myModule = function() { //PRIVATE PROPERTIES AND METHODS var holdNumber = 3; var arrhold = []; //private function PrivateMessage(obj) { console.log("Object successfully added: " + obj) } //public function addObject(obj) { arrhold.push(obj); PrivateMessage(obj); } return { addItem: addObject } }(); console.log(myModule.addItem("A")); console.log(myModule.addItem("A"));addObject no devuelve ningún dato de arrhold . Si desea agregar e imprimir esa matriz, debe agregar return a addObject
//MODULE DESIGN PATTERN var myModule = function() { //PRIVATE PROPERTIES AND METHODS var holdNumber = 3; var arrhold = []; //private function PrivateMessage(obj) { console.log("Object successfully added: " + obj) } //public function addObject(obj) { arrhold.push(obj); PrivateMessage(obj); return arrhold; //return arrhold } return { addItem: addObject } }(); console.log(myModule.addItem("A")); console.log(myModule.addItem("A"));addObject no devuelve nada, por lo que console.log(myModule.addItem("A")) no está undefined
Puede devolver arrhold que le dará el valor deseado:
//MODULE DESIGN PATTERN var myModule = function() { //PRIVATE PROPERTIES AND METHODS var holdNumber = 3; var arrhold = []; //private function PrivateMessage(obj) { console.log("Object successfully added: " + obj) } //public function addObject(obj) { arrhold.push(obj); PrivateMessage(obj); return arrhold } return { addItem: addObject } }(); console.log(myModule.addItem("A")); console.log(myModule.addItem("A"));