2015-05-30 46 views
1

用JavaScript處理ProcessingJS。使本地函數成爲全局函數

如果我在繪圖函數之外定義一個函數,我該如何將這個函數傳遞給繪圖函數(不需要複製和粘貼繪圖函數)?

var myFunction = function() 
{ 
    code; 
} 

var draw = function(){ 
    myFunction(); 
}; 

你如何使一個功能全球?

我使用有限的環境,可汗學院,只有最簡單的功能和命令可用。

感謝您的回覆,並很抱歉成爲初學者。

+0

刪除myFunction前面的var – Mox

+0

不應該是函數myFunction(){}? @Oriol – Mox

+0

@Mox嗯,對不起,我讀'var myFunction = function(){code;}',並認爲你提示'myFunction = function(){code;}'。 – Oriol

回答

1

您可以將您的函數作爲參數傳遞。例如:

var myFunction = function() {code;} 

var draw = function(f) { f(); }; 

draw(myFunction); 
0

您使用的語法無效。如果你想使全局函數並調用它裏面draw(),只是聲明它像一個普通的功能:

var myFunction = function() { // <-- note the "=" sign and "function" keyword here 
    code; 
}; 

var draw = function(){ 
    myFunction(); 
}; 
+0

對不起,我一直在粗心大意,忘了一部分,但是當我把它寫在控制檯中時是對的。它是固定的,謝謝。 – Quidam

1

我用汗學院了。有嚴格的語法規則在其他地方沒有意義。回答這個問題,

var myFunction = function() { 
    /* Stuff */ 
}, draw = function() { 
    myFunction(); 
}; 

將工作得很好。

+0

謝謝。在我的情況下完美的答案。其他答案也很有趣。 – Quidam

+0

我會很樂意與您討論語法上的差異。 – Quidam

+0

有一些着名的例子,比如'function myFunction(){}'被禁止,每條線上都需要分號等。 –

0

你要求的是在draw函數內調用myFunction。

這裏是你會怎麼做:

var myFunction = function(){ 
    //your code here 
} 

var draw = function(fun){ 
    fun(); 
} 

基本上,如果你想打電話給myFunction的()平局()函數中,你必須通過一個函數爲平局(),這就是所謂的一個參數。像這樣:var draw = (fun)在這裏,fun是一個被傳入draw的函數。現在你只需要使用fun()來調用它;

祝你好運!