首页 > 解决方案 > koa-router 中的 new Router() 和 Router() 是否相同?

问题描述

我看到了koa-router如下使用的代码。

const Router = require('koa-router')

const routerWithoutNew = Router()

我认为这是一个错误,但我很惊讶地看到它正常工作。

const Router = require('koa-router')

const routerWithNew = new Router()

而且,它也可以正常工作。

routerWithoutNew和有什么区别routerWithNew

标签: javascriptkoakoa-router

解决方案


由于 Koa Router 源代码中的以下行,它们被同等对待:

if (!(this instanceof Router)) return new Router(opts);

(来自https://github.com/koajs/router/blob/56735f009768e32cce89af60337e7e2a8d6bbbc4/lib/router.js#L51


推荐阅读