No puedo setear correctamente valores a propiedades de objetos dentro de closures.
Tengo 2 objetos (aves y peces) que poseen una propiedad que es un objeto llamado "control" el cual posee una variable "ownerId" , seteada a traves de init(), esta propiedad no parece ser seteada correctamente.
Código Javascript:
Cada vez que hago click el metodoVer original
-------- Aves ------------------- var aves = function() { var controlAves = null; var setAves = function() { controlAves.init({ 'ownerId':'aveContainer' }); $('.aves').click(function(){ controlAves.getOwnerId(); }); }; return { setControl: function(ctr) { controlAves = ctr; }, init: function(){ setAves(); } }; }(); $(document).ready(function(){ aves.setControl(control); aves.init(); }); ----------Peces------ var peces = function() { var controlPeces = null; var setPez = function() { controlPeces.init({ 'ownerId':'pezContainer' }); console.log(controlPeces.ownerId); $('.peces').click(function(){ controlPeces.getOwnerId(); }); }; return { setControl: function(ctr) { controlPeces = ctr; }, init: function(){ setPez(); } }; }(); $(document).ready(function(){ peces.setControl(control); peces.init(); }); ----------control -------------- var control = (function() { return { ownerId:null, getOwnerId:function(){ ////////Esta variable siempre es "pezContainer" console.log(ownerId); }, init: function(params) { ownerId= params.ownerId; } }; })();
controlPeces.getOwnerId();
siempre trae "pezContainer" como ownerId.
tanto en
$('.peces').click(function(){
como en
$('.aves').click(function(){
en lugar de mostrar "aveContainer" al hacer click en ".aves"