Reputation: 3260
Consider this piece of code:
AEP: {
Module: {
_instances: {},
get: function(module) {
return (AEP.Module._instances[module.id] || (AEP.Module._instances[module.id] = new AEP.Module.Instance(module)));
},
implement: function(module, implementation) {
AEP.Module.get({id: module}).dispatch(implementation(AEP));
},
/**
* @param module
* @constructor
*/
Instance: function(module) {
AEP.Event.apply(this, arguments);
AEP.Utility.loadJSFile(module.url);
}
}
//...
}
I am getting this GCC warning:
WARNING - Constructor AEP.Module.Instance must be initialized at declaration
Why is that?
Upvotes: 1
Views: 205
Reputation: 14411
I'm guessing that check doesn't recognize the label as an assignment. Try this:
AEP: {
Module: {
_instances: {},
get: function(module) {
return (AEP.Module._instances[module.id] || (AEP.Module._instances[module.id] = new AEP.Module.Instance(module)));
},
implement: function(module, implementation) {
AEP.Module.get({id: module}).dispatch(implementation(AEP));
},
Instance:
/**
* @param module
* @constructor
*/
function(module) {
AEP.Event.apply(this, arguments);
AEP.Utility.loadJSFile(module.url);
}
}
//...
}
Upvotes: 1
Reputation: 39270
As Crazy Train explained already; here is an example:
var AEP= {
Module: {
_instances: {},
get: function(module) {
window['console'].log("get");
},
implement: function(module, implementation) {
window['console'].log("implement");
}
}
};
/**
* @param module
* @constructor*/
AEP.Module.Instance= function(module) {
window['console'].log("instance");
};
Upvotes: 0