2011-12-05 144 views
-1

我有這樣通過字符串名稱的JavaScript函數調用

function is_mandatory(string){ 
    if(string.length > 0) 
return true; 
} 

現在定義的JavaScript函數,我試圖調用定義爲刺痛名

var is_mandatory; 

is_mandatory("Check"); 

功能,而且,這將返回錯誤說變量不是函數。我怎樣才能從字符串名稱調用函數。

乾杯!

+0

您已經定義的變量,這就是爲什麼你得到這樣的錯誤。嘗試更改'var is_mandatory;'的變量名稱。 –

+0

你不是試圖調用定義爲字符串名稱的函數。 –

+0

[如何執行一個JavaScript函數時,我的名字是一個字符串]可能的重複(http://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have -its-name-as-a-string) – Strelok

回答

0

您重新定義is_mandatory作爲一個未定義的變量當您運行此代碼:

var is_mandatory; 

但我不認爲這是你的意圖。完全刪除那條var行。

+0

它是'undefined'而不是'null'。 –

+0

對不起,我不是JS大師。對我而言,'null'和'undefined'聽起來很像...... – Blender

+0

沒問題。它們是相似的概念,只是不同的實際值。 –

-2

用你的函數初始化你的變量,然後嘗試調用它。

var is_mandatory = is_mandatory; 

is_mandatory("Check"); 
0

如果變量是在窗口的範圍內聲明的,你可以這樣做:

function is_mandatory(str){ 
    if(window[str].length > 0) 
     return true; 
} 

JS Fiddle Example

2

這將工作。

function is_mandatory(str){ 
    return (str.length > 0); 
} 

is_mandatory("Check"); 

您不必申報var用相同名稱的方法is_mandatory

相關問題