2016-03-15 51 views
0

自調用函數所以我有以下代碼:電話從外面的身體機能

(function init_chart(){ 
    // body function 
})(); 

它的工作如預期。但是當我試圖從函數的外部調用init_chart()時,控制檯說它是未定義的。然後我試圖添加內部init_chart()功能下面一行:

window['init_chart'] = this; 

現在控制檯說init_chart不是一個函數。

+1

將'window.init_chart = init_chart;'函數內部。 – Pointy

+0

'this'實際上是指窗口對象(在你的情況下) – Hacketo

+0

是什麼讓你認爲'this'是指函數?除非你明確地設置它,否則'this'永遠不會引用該函數本身。 –

回答

2

您正在創建一個命名函數表達式函數,所以基本上函數沒有在全局範圍上定義。最簡單的方法是執行以下操作:

function init_chart(){ 
    // body function 
}; 
init_chart(); 
+2

「命名匿名函數」是一種矛盾修飾詞。當然你的意思是「命名函數表達式」,對吧? ;) – Scimonster

+0

@Scimonster早晨太早了哈哈 – JCOC611