Javascript 函数和构造函数语法之间的区别?

标签 javascript function constructor

我已经研究了 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/

相关文章:

javascript - 正则表达式 - 匹配从 'XXX' 开始到下一次出现

javascript - 如何拖放 html 表格列?

c++ - 如何在模板类之外定义构造函数

c++ - 基本类型的 static_cast<T> 与 T(n)

javascript - 通过用户输入更改变量的值并在不同页面上重新使用它

javascript - 连接两个 AJAX 请求返回到 1 个数组

jquery - 解除绑定(bind)特定函数 jQuery

javascript - 原型(prototype)与函数定义

function - Lua,设置默认函数参数值。这不会有错吧?

包含数据库查询的 PHP 构造函数来构建对象,好/坏?