2011-07-19 19 views
-1

是否有可能一個參數對象中的文字添加到函數引用:函數引用參數(實際上,對象常量)

var custom = {onLoadBegin: onLoadBegin}; 

想這是

onLoadBegin('argument') 
+3

你提的問題是非常不清楚。 –

+0

請嘗試重新說明問題。目前還不清楚自定義對象和函數調用實際上是如何相關的,以及通過在json對象中添加參數意味着什麼。 – zatatatata

+0

這甚至不是一個JSON對象。 JSON對象不能保存功能。你正在處理一個對象文字。 – Kayla

回答

2

假設你有一個名爲onLoadBegin函數外部於custom,那麼你可以這樣做:

var custom = { 
    onLoadBegin: function() { 
     onLoadBegin("argument"); 
    } 
}; 

當您致電custom.onLoadBegin時,它將調用原始onLoadBegin與您的論點。

+0

我現在這樣做,但另一個問題已經攀升:\t \t \t \t \t \t的onLoadComplete:函數(){的onLoadComplete($(本).attr( '身份證'))} - $的(這)沒有按」 t在那個時候似乎是可用的,我該如何解決這個問題?該論點不是靜態的。 – Wesley

+0

@Wesley - this的值取決於你自定義的onLoadBegin函數的調用方式。例如,如果是說'custom.onLoadBegin()',那麼'this'就是'custom'。如果你想從其他一些環境中得到這個'this'的值,那麼你需要明確這一點。 –

0

是,在你的例子中,你可以調用custom.onLoadBegin(argument)

+0

我不能自己調用​​它,它需要自動完成,因爲它依靠其他jquery插件來執行調用。 – Wesley

0

JSON格式不包含函數,它只是用於數據。請提供額外信息有關正是你想要達到

如果你不關心標準只是想和你得到的東西做,你可以做這樣的東西:

{functionName: [argument1, argument2, ...]} 

而且在客戶端,做這樣的事情:

window[key].apply(this, value) 
0

你需要把你的處理器在封閉:

var loadHandler = function() { 
    doSomething('argument'); 
} 

onLoadBegin(loadHandler); 

你也可以做到這一點與匿名函數:

onLoadBegin(function() { 
    doSomething('argument'); 
});