我想創建一個JavaScript庫,所以我認爲使它成爲一個立即執行自動執行的函數將是一件很好的事情來確保範圍安全性和一切。立即自動執行功能和「這個」
但現在我遇到了一個問題,使用「我」不太明白的「this」關鍵字。
如何使這樣的代碼正確工作?目前,它告訴我「圖像」是未定義的。
(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();
如何訪問image
屬性?
您是否嘗試過使用FireBug或Opera DragonFly等工具進行調試?大多數情況下,您可以看到當前範圍是什麼以及定義了哪些變量。 – Marc 2011-05-26 13:07:58