2016-01-27 66 views
-2

讓我們假設我定義了一個自動執行的功能如下所示:訪問自執行的函數中的另一種方法

({ 
    function1: function(){//...} 
    function2: function(){//...} 
}) 

我怎樣才能調用函數2從內部功能1?

(我試着給它只是想:函數2();和this.function2();,沒有工作,既返回錯誤:函數2()或this.function2()不是一個函數)

其實這是Aura框架的一部分,所以也許它是特定於這個框架的。

+5

這不是一個自動執行的函數。這甚至不是一個功能。 – dfsq

+0

它以什麼方式不起作用?你如何調用這些函數來測試? – Hogan

+0

編輯了這個問題。 「...」不是函數 –

回答

1

這裏有幾個錯誤。首先,這不是一個自我執行的功能。這是一個內部定義了兩個函數幷包裹在括號中的對象,這使得它無效。這樣的事情將是一個有效的JavaScript對象:

object1 = { 
    function1: function(){ 
     console.log('function1 called!'); // logs the text 'function1 called!' to the console 
}, 
    function2: function(){ 
     console.log(this); // logs the details of `object1` 
     this.function1(); 
    } 
}; 
object1.function2(); 

等效功能使用匿名函數會是這個樣子:

(function(){ 
    console.log('anonymous function called!'); 
})(); 

注意缺少周圍的匿名函數大括號。與對象中的函數不同,匿名函數不是任何對象的成員。還要注意最後一組括號,這些是觸發剛纔定義的匿名函數的執行的原因。

JavaScript函數:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions

+0

不可能,我明確提到它不起作用 –

+0

用更多的信息更新了我的答案。希望現在更清楚。 – Stratus3D

相關問題