2015-08-22 33 views
1

調用另一個函數中的一個函數我已經在一個腳本文件A.js創建嵌套函數,象下面這樣:如何在javascript

function A(){ 
    function B(){} 
} 

如果我要調用函數B()在另一個腳本文件C .js,我該怎麼辦?

+1

是否有任何原因的嵌套功能?函數A還有其他什麼,還是隻是函數B? – Andy

+1

你會怎麼做,這取決於許多其他的事情。沒有一個正確的答案。 – Pointy

+0

你不能,你不能訪問另一個函數的作用域,除非你暴露它。 –

回答

1

你想要做什麼,似乎是創建一個function closureB使用A()內的變量。如果您在致電A()後返回B,則可以訪問此關閉B

A.js

function A([parameters]) { 
    [variables] 
    function B() { [function body] } 
    //Return B from A: 
    return B; 
} 

C.js:那麼,在C.js,您可以通過調用A和使用的返回值訪問B

//Get B: 
var bFunction = A([parameters]): 
//Call bFunction: 
bFunction(); 
+0

謝謝,正是我需要的〜 – angella1011

0

你必須返回嵌套函數:

function A(){ 
    return function B(){} 
} 

然後在C.js

var funB = A(); 
funB(); 

A()(); 
0

你不得不從返回嵌套函數B()父功能A()

您的代碼

function A(){ 
    function B(){} 
} 

更新的代碼與return語句

function A(){ 
    return function B(){ //return added 

}  
} 

您可以通過添加額外的()括號函數調用,如下面的例子訪問子功能。

A()();