我正在寫一個JavaScript(使用jQuery)的顯示類,可能會在網頁加載前實例化。如果頁面還沒有準備好當構造函數被調用,該實例被添加到一個靜態instances
場的類,它被重複時,在頁面加載了:JSLint編寫構造函數,引用靜態變量
function MemDisplay(ready_callback) {
this.readyCallback = ready_callback;
if (MemDisplay.ready) {
this.linkToPage();
} else {
MemDislay.instances.push(this);
}
}
//this makes sure that the ready callback can be sent when the page has loaded
MemDisplay.ready = false;
MemDisplay.instances = [];
$(document).ready(function() {
var i;
MemDisplay.ready = true;
for (i = 0; i < MemDisplay.instances.length; i += 1) {
MemDisplay.instances[i].linkToPage();
} });
//example truncated for brevity
當我通過JSLint的運行它,我得到這個錯誤:
Problem at line 25 character 9: 'MemDislay' is not defined.
MemDislay.instances.push(this);
我需要在構造函數中引用MemDisplay.instances
,但構造函數是其中MemDisplay
定義,所以我很困惑如何使這項工作,而JSLint的的指導方針內裝修。有一個更好的方法嗎?在這種情況下,我應該忽略JSLint嗎?
順便說一句,嘗試在JavaScript中做類繼承等事情,並且不得不手工完成所有工作,這讓我更加了解Java這樣的語言必須進行的工作,因爲這樣做符合標準 - 絕對是一種有用的學習體驗。 – 2011-04-29 01:17:45