访问自执行功能中的另一个方法

时间:2016-01-27 18:24:07

标签: javascript

我们假设我定义了一个自执行函数,如下所示:

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

如何从function1内部调用function2?

(我尝试调用它就像:function2();和this.function2();,都没有用,都返回错误:function2()或this.function2()不是函数)

实际上这是Aura框架的一部分,所以也许这个框架是特定的。

1 个答案:

答案 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