Javascript中这些函数声明有什么区别?

时间:2014-07-26 03:10:43

标签: javascript function declaration

我很难理解以下声明之间的区别是什么......

var User = function(name, email) {
  this.name = name;
  this.email = email;
};

function User(name, email) {
  this.name = name;
  this.email = email;
};

1 个答案:

答案 0 :(得分:1)

我所知道的最基本的区别是var User = function(name, email)是在运行时创建的,function User(name, email)将在分析时创建。

添加示例

这可以在这里使用,因为name在解析文件时可用

name();    
function name () {
    console.log('My Name')
}

但这会引发一个名为undefined is not a function

的错误

但问题是它在读取行var name = function()之前不会被声明。

name()
var name = function(){
    console.log('My Name');
}