最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

函数声明和函数表达式可以互换使用吗? [重复]

IT培训 admin 9浏览 0评论

函数声明和函数表达式可以互换使用吗? [重复]

这个问题在这里已有答案:

  • var functionName = function() {} vs function functionName() {} 37回答
回答如下:

他们都有自己的用例。函数声明是hoisted到脚本的顶部,可以在定义出现之前调用,而函数表达式只能在声明后调用。

sayHello1(); // Won't work since variable expression is created after call
sayHello2(); // Will work since function declarations are hoisted

var sayHello1 = function() {
  console.log("Hello World!");
}

function sayHello2() {
  console.log("Hello World!");
}

命名函数表达式对递归调用很有用:

var sayHello1 = function sayHelloFunc() {
  if (/* something */) {
    sayHelloFunc()
  }
}

函数声明和函数表达式可以互换使用吗? [重复]

这个问题在这里已有答案:

  • var functionName = function() {} vs function functionName() {} 37回答
回答如下:

他们都有自己的用例。函数声明是hoisted到脚本的顶部,可以在定义出现之前调用,而函数表达式只能在声明后调用。

sayHello1(); // Won't work since variable expression is created after call
sayHello2(); // Will work since function declarations are hoisted

var sayHello1 = function() {
  console.log("Hello World!");
}

function sayHello2() {
  console.log("Hello World!");
}

命名函数表达式对递归调用很有用:

var sayHello1 = function sayHelloFunc() {
  if (/* something */) {
    sayHelloFunc()
  }
}
发布评论

评论列表 (0)

  1. 暂无评论