javascript - Nodejs如何将一个函数原型化为其他函数,即function.function.function ...等
问题描述
我正在寻找一种方法来实现具有无限原型的函数或类,每个原型都是函数。
例如,有许多模块提供这种功能。
app.url("localhost").port(80).listen
或著名的雄辩家
model.where("field","cslkdfja").where("field2","asdfad").count()
我怎样才能实现这种方法?
解决方案
这称为函数链接,可以通过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
推荐阅读
- python - Python继承类都返回相同的随机数?
- keycloak - Keycloak:自定义身份提供者中的 grant_type=password
- ruby-on-rails - 如何与非复数表名进行活动记录关联?
- javascript - 如何在 jstree 复选框中获取阴影元素?
- nginx - Nginx 和 Cloudflare:err_too_many_redirects
- c# - C# DateTime 通过方法参数传递时始终为 01/01/0001
- matplotlib - 设置 figtext 的范围
- node.js - 如何使用套接字将请求代理到 h2c HTTP/2 服务器?
- android - Recyclerview 未显示在片段中
- php - 动态创建 Laravel 模型