2014-11-01 30 views
-3

串聯JavaScript函數名如何連接javascript函數名?

這是行不通的:

"getlatestmsg"+userid(userid, username); 
+0

你期待什麼結果,你會得到什麼? – mjhm 2014-11-01 07:55:28

+0

動態函數名稱?餿主意。 – undefined 2014-11-01 07:57:04

+0

因此,您已爲每個用戶分別命名了功能,其中所有用戶都有10,000個?哪兒來的呢?向我們展示更多背景,也許有人可以提供更好的方法。 – 2014-11-01 07:59:55

回答

-2

你可以做這樣的事情:

窗口[「getlatestmsg」 +用戶ID(用戶ID,用戶名);

+0

非常好...!正常工作 – NevYL 2014-11-01 07:59:19

0

這是不好的設計實踐。

相反,變量傳遞給函數,然後使用如果其他的功能

function myFunction(myvar){ 
    if (myvar==='one'){ 
    //logic 
    } 

    if (myvar==='two'){ 
    //logic 
    } 
} 
+0

我有多個函數,如getlatestmsg2,getlatestmsg3 2和3是userid所以現在我想調用像getlatestmsg + userid – NevYL 2014-11-01 07:53:39

+0

函數使用var作爲變量名稱,真的嗎? – Adam 2014-11-01 08:01:18

+0

@亞當,好趕上! – Andrew 2014-11-01 08:26:28

0

假設你的函數是在全局範圍內聲明的,它們就變成了窗口對象的屬性。因此,可以通過window.getlatestmsg123和[]符號窗口['getlatestmsg123']來訪問以下內容:

function getlatestmsg123() { 
} 

因此,您可以使用

window["getlatestmsg"+userid]; 

評估你的職責,你可以使用

window["getlatestmsg"+userid](userid, username); 

叫它不過我建議你反對這種做法,您的設計似乎被打破。我會有一個處理任何用戶的函數。