2016-08-04 25 views
0

因此JavaScript我會動態地從這樣的字符串調用一個函數:的CoffeeScript - 調用一個字符串的函數,JavaScript代碼不起作用

window["function_name"](args); 

但是,如果我嘗試這種在CoffeeScript中這是行不通的,這是咖啡腳本在全局命名空間中沒有功能的方式嗎?

所有的功能都包裹在這樣的功能:

(function() { 
#code here 
}).call(this); 

那麼,如何調用在CoffeeScript中字符串的函數?

+0

這取決於函數是如何定義的地方/。你總是可以寫@someFn =() - > ...和另一個文件'@ ['someFn']()'。但是如果你在當前文件中談論一個,你必須把它作爲一個對象方法,或者像我這樣做的'window'或者其他一些對象。 –

回答

0
window["function_name"](args); 

這段代碼在編譯的CoffeeScript到:

window["function_name"](args); 

在javscript。

所以問題不是CoffeeScript,而是你的代碼。

1

我試圖here( 「嘗試Coffescript」 一節),這(抱歉identation):

(-> 
    foo =() -> 
    alert "it works" ; 
).call(this); #IFFE on Coffescript 

    window["foo"]() ; 

而且它似乎工作

相關問題