【问题标题】:what are the various ways to define function in javascript [duplicate]在javascript中定义函数的各种方法是什么[重复]
【发布时间】:2017-01-14 23:28:21
【问题描述】:

这是在 javascript 中定义函数的最佳方式。如何使用 ':' 定义函数,例如 function_Name : function(){} 。

【问题讨论】:

  • 你不能定义像function_Name : function(){}这样的函数。必须是function function_Name(){}var function_Name = function(){}
  • 你的意思是var anyFunctionName = function(){}function(){}
  • 请注意,在标准的国际英语问题后面跟一个问号(中间没有空格)。句子以大写字母开头。您问题中的代码应该用反引号括起来,以使其格式正确。在编写问题时,您需要像我知道您在编程工作中一样关注细节。

标签: javascript


【解决方案1】:

希望对你有用

命名函数

function someName(){
 //rest of code
}

可以被someName()调用;

函数表达式

var someName = function(){}

可以被someName()调用

IIFE

(function(someParam){
 //rest of code
}(params))

IIFE也可以也可以这样写

+function(someParam){
//rest of code
}(someParam)

命名函数表达式

var someVar = function someFoo(){};

这是由 someVar() 调用的。 someFoo 只能在其内部访问

箭头函数(又名胖箭头)

var someVar= (param1, param2) => {return somereturn}

函数构造函数

var adder = new Function('a', 'b', 'return a + b');

除此之外你还可以看看call & apply

【讨论】:

  • 我认为您在 IIFE 示例中多留了一个 }
  • @GibboK 感谢您指出错误。我已经编辑了它
  • 他为什么要看callapply?它们是调用函数的方法,而不是定义函数,这就是他的问题所在。
【解决方案2】:

没有定义函数的“最佳”方式,这取决于您的需求。例如,如果您有一个验证某事的函数,那么将其放入像 Pugazh 所说的变量中是有意义的:

var foo = function(){
  if (/*some condition*/) {
    //do something...;
    return true;
  }
  else {
    return false;
  }

然后像alert(foo()); 一样使用它,它将执行函数并返回值(真或假)。 有时您需要一个命名函数,您可以使用以下选项调用:

function SaveData(data) {
    //Code to save something
}

然后像SaveData("Hello World");这样称呼它

有时您只是添加一个没有名称的函数,该函数作为回调(例如在 jquery 中)执行,或者当您执行特定操作但您在事件中定义它而不是作为命名函数。

所有类型的函数都有其用例。

【讨论】:

    猜你喜欢
    • 2011-08-01
    • 2012-05-14
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2011-12-18
    相关资源
    最近更新 更多