1
像往常一樣,我來這裏後,測試了幾個小時,沒有任何線索我做錯了;-)我不是一個JavaScript專家,所以我想這會導致一些滾動的眼睛;-)對不起。我現在正處於一個以更可讀的方式編寫代碼的地步。功能分隔條件在班等等...我想要實現的是這樣的:問題傳遞參數與JavaScript的eval函數...我做錯了什麼?
modules.create( 'streamModule', 'leftColumn')
它將調用
streamModule.create ()
現在我沒有得到的東西的工作:
調用modules.create('streamModu le','leftColumn')總是結果
參考錯誤:leftColumn未定義 ???
呼叫中的ID:eval(type +「。create(」+ id +「,」+ target「)」);總是正確傳遞,但目標參數不是?我究竟做錯了什麼?
任何幫助將非常非常感激!!!!!謝謝!
var modules = {
_map : [],
create: function(type,target) {
if(type == undefined) return false;
if(target == undefined) return false;
//Store id in map
this._map.push(id = createID());
//Call create function of module
eval(type +".create("+id+","+target")");
}
}
[...]
var streamModule = {
create: function() {
$.log(target)
}
}
[...]
modules.create('streamModule','leftColumn')
+1,只是打字類似的東西我自己。使用* eval()*的第一條規則是你應該避免使用它。 – 2010-08-22 10:18:41
因爲我得到:type.create()不是一個函數...? 已經嘗試過:-( – Bosh 2010-08-22 10:19:25
SORRRY ..我是這樣一個延遲....用字符串調用它...使用modules.create(streamModule,'leftColumn');作品... SORRY – Bosh 2010-08-22 10:21:44