Hola a todos,
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
:
Ver 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;
}
};
})();
Cada vez que hago click el metodo
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"