我已经研究了 Javascript 有一段时间了,但是我似乎不知道如何找出语句是函数还是构造函数的区别。这是构造函数的代码:
function Book (pages, author) {
this.pages = pages;
this.author = author;
}
这是一个简单的函数:
var cars = function(printCar){
console.log(blabla);
};
但是我在一些教程(即 CodeCademy)中看到他们也使用构造函数语法来创建函数。这怎么可能?
最佳答案
没有语法差异。所有(用户定义的)函数都可以作为函数/方法或构造函数来调用。无论是function declaration or a expression没关系:
var Book = function() { … };
function Book() { … }
var example = function() { … };
function example() { … };
但是,naming functions始终鼓励这样做,并且当您可以使用声明时,没有理由编写 var example = function() { … }
。但在某些情况下,需要表达式(通常是匿名的),或者 declarations are invalid .
它们是什么以及它们做什么完全由它们的 body 代码决定。构造函数通常在 this
上设置属性。 ,但是方法也可以做到这一点。构造函数通常没有 return
语句,如 new
operator隐式返回创建的实例。
区分它们的约定是构造函数的名称大写。
关于Javascript 函数和构造函数语法之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25750236/