我最近为 node.js 创建了自己的模块,用于 koa 模块。它是一个类似 koa-i18n 的翻译模块。我研究了其他 koa 模块,以了解如何将函数/属性应用于 koa 上下文/请求,其中一些使用 Object.defineProperty 函数,但我在模块中所做的是直接在“this”上应用函数。
那么,使用和使用有什么区别
Object.defineProperty(app.context, 'getSomeValue', { ... });
和
return function* (next) { this.getSomeValue = function () { ... } }
我还遇到了使用“应用”功能的节点委托模块。这些方法中的哪一种是将函数/属性应用于现有对象的首选方法,优缺点是什么?