gpt4 book ai didi

javascript - 为什么 Router 在 express 4.x 中像普通函数一样使用而不是构造函数?

转载 作者:搜寻专家 更新时间:2023-10-31 23:38:12 25 4
gpt4 key购买 nike

我是试图了解 Express 4.x 路由的新手,我正在阅读他们的指南:http://expressjs.com/guide/routing.html

在最后一段中说:

The express.Router class can be used to create modular mountable route handlers. A Router instance is a complete middleware and routing system

附带的代码是:

var express = require('express');
var router = express.Router();

为什么这个 express.Router 构造函数在没有 new 运算符的情况下像普通函数一样被调用?他们在文档中说这是一个类,他们根据 javascript 样式(大写首字母)命名它,但他们(以及所有其他在线示例)将它用作普通函数。

最佳答案

除了传统的实例化,有些人还喜欢支持函数式风格。这是通过在函数顶部添加一个像这样的简单检查来完成的:

function Router() {
if (!(this instanceof Router))
return new Router();

// ...
}

这允许支持两种类型的调用(使用 new 和不使用)。

关于javascript - 为什么 Router 在 express 4.x 中像普通函数一样使用而不是构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30643216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com