2012-03-26 59 views
1

可能重複:
Alternatives to eval() for multiple nested objects替代JavaScript中的eval()爲深功能

我試圖找到eval()替代。我用它從一個字符串中調用一個函數。

我知道window["myFunction"](args)但我的功能是在另一個對象。

它可以是例如"myObject.anotherOne.myFunction""myObject.myFunction"或任何類型的深層。

請問有人有想法嗎?

+0

不確定你在找什麼......這個'eval()'做錯了什麼?你想做什麼? – 2012-03-26 15:37:11

+0

這不是重複的。鏈接的副本是關於對象值的,我需要調用一個函數。確實它給了我實現我的目標的想法,但我還沒有完成 – JiDW 2012-03-26 15:55:48

回答

1

而不是傳遞函數名稱和使用eval只是直接傳遞函數。

var toCall = function() { 
    console.log("toCall was called"); 
}; 

// Call via eval 
var evalSample = function (theName) { 
    ... 
    eval(theName); 
} 
evalSample('toCall'); 

// Call via callback 
var funcSample = function (theFunc) { 
    ... 
    theFunc(); 
}; 
funcSample(toCall); 
+0

傳遞函數名稱在我的情況下不是一個選項。這就是我的全部。 – JiDW 2012-03-26 15:54:10