2013-03-22 29 views
1

此代碼:東西是錯誤的JavaScript對象聲明

var doc = { 
    foldPrompt: function(folded) { 
    return folded ? "Click to unfold" : "Click to fold" 
    }, 
    createFoldButtons: function() { 
    var prompt = foldPrompt(true); //The error is here 
    $("#ComparisonTable td.secrow").each(function(index, td){ 
     $(td).prepend($('<img src="minus.gif" class="foldbtn" alt="'+prompt+'" title="'+prompt+'">')); 
    }); 
    } 
} 

給我一個錯誤:Undefined variable: foldPrompt

我在做什麼錯?

回答

3

foldPrompt不是變量;它是doc的屬性,並且您需要一個對象引用來訪問該對象的屬性。

如果有人呼叫doc.createFoldButtons(),那麼this上下文變量將指向與doc變量相同的對象。因此,請將foldPrompt(true)替換爲this.foldPrompt(true)

+0

如果我將代碼編輯到答案中,可以嗎? – 2013-03-22 19:40:06

+0

@Asad我不知道,你會做什麼編輯? – cdhowie 2013-03-22 19:40:31

+0

啊,我剛剛發現,「用'this.foldPrompt(true)''替換'foldPrompt(true)'。」沒關係 – 2013-03-22 19:41:21