首页 > 解决方案 > Nodejs如何将一个函数原型化为其他函数,即function.function.function ...等

问题描述

我正在寻找一种方法来实现具有无限原型的函数或类,每个原型都是函数。

例如,有许多模块提供这种功能。

app.url("localhost").port(80).listen

或著名的雄辩家

model.where("field","cslkdfja").where("field2","asdfad").count()

我怎样才能实现这种方法?

标签: javascriptnode.js

解决方案


这称为函数链接,可以通过this从函数返回封闭的执行上下文 () 来完成,如下所示:

const obj = {
  func1: function () {
    console.log('func1')
    return this // returning 'this' 
  },

  func2: function () {
    console.log('func2')
    return this // returning 'this'
  },

  func3: function () {
    console.log('func3')
    return this // returning 'this'
  },
}

obj.func1().func2().func3().func1() // Chain all methods


推荐阅读