Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:调用init函数与返回该函数调用_Javascript_Function_Return_Init - Fatal编程技术网

JavaScript:调用init函数与返回该函数调用

JavaScript:调用init函数与返回该函数调用,javascript,function,return,init,Javascript,Function,Return,Init,在提交之前没有仔细考虑这个帖子。抱歉。您的第二个示例无效: return{ init(); } {…}定义了一个必须包含键值对的对象文本,比如{foo:'bar'}您的第一个示例将在init中执行操作,并返回未定义的 你的第二个例子是无效的。我想你想要: return init() 没有花括号。这将返回init(您尚未指定)的结果。在这两种情况下,setup和moreSetup从未被调用,所以我不确定它们为什么会出现 您遗漏了很多细节,但我现在的回答是:

在提交之前没有仔细考虑这个帖子。抱歉。

您的第二个示例无效:

return{       
        init();
    }

{…}
定义了一个必须包含键值对的对象文本,比如
{foo:'bar'}

您的第一个示例将在
init
中执行操作,并返回
未定义的


你的第二个例子是无效的。我想你想要:

return init()
没有花括号。这将返回
init
(您尚未指定)的结果。在这两种情况下,
setup
moreSetup
从未被调用,所以我不确定它们为什么会出现


您遗漏了很多细节,但我现在的回答是:如果调用方需要对
init
的结果进行处理,则需要使用选项2

没有冒犯的意思,但这似乎是一个有点困惑的问题。正如其他人所指出的,在第二个示例中,不应该在
init()
周围使用括号。当你说
function setup(){…}
时,你只是在定义函数,而不是调用它——这意味着在本例中,函数永远不会被调用

但我发布这个答案的主要目的是:“调用init函数vs.返回函数调用”。在第二个示例中,认为您正在“返回函数调用”是不正确的。当您说
return init()
时,首先调用
init()
并返回一些值,然后您的
foo
函数返回
init()
返回的值


这就是你应该问的问题。我只是想
foo
调用
init
,还是想
foo
调用
init
并返回
init
返回的值?这就是两者之间的区别(一旦其他错误被删除)。

如果您仍然对使用init调用函数的想法感到兴奋,就像我所做的:),那么您可以按如下方式设计函数:

var mainFunction = function() {
  var init = () => {
    functionOne();
    functionTwo();
  }

  function functionOne(){
    console.log('I am the first one');
  }

  function functionTwo(){
    console.log('I came second?');
  }

  return {
   init: init
  };
}(); // please note the () - call the function here or use
// mainFunction().init()

mainFunction.init();
不用担心如果你不问,你还是会感到困惑。