我们假设我定义了一个自执行函数,如下所示:
({
function1: function(){//...}
function2: function(){//...}
})
如何从function1内部调用function2?
(我尝试调用它就像:function2();和this.function2();,都没有用,都返回错误:function2()或this.function2()不是函数)
实际上这是Aura框架的一部分,所以也许这个框架是特定的。
答案 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