I want to create a javascript library, so I thought making it an immediately self executing function would be a nice thing to do to ensure scope safety and everything.
But now I'm running into a problem with using the "this" keyword that I don't quite understand.
How can I make a code like this work correctly? Currently, it tells me that "image" is undefined.
(function() {
function lib() {
this.image = document.getElementById("image");
this.parts = [
{name: "part1", num: "1"}
];
this.init = function() {
$(parts).each(function() {
var partNum = this.num;
image.getElementById(partNum).addEventListener("click", function() {
toggleHighlight(partNum);
}, true);
});
};
}
window.lib = new lib();
})();
window.lib.init();
How can I access the image
property?