[英]Javascript static method chaining
我可以在 javascript 中链接静态方法吗? 这是我正在尝试做的一个例子
test.js
'use strict'
class testModel{
static a(){
return "something that will be used in next method"
}
static b(){
let previousMethodData = "previous method data"
return "data that has been modified by b() method"
}
}
module.exports = testModel
然后我希望能够调用这样的方法
const value = testModel.a().b()
其他人在评论中解释说,您希望方法a()
和b()
是实例方法而不是静态方法,以便您可以操作this
的值。
为了获得您想要的静态链接,只有链中的第一个方法需要是静态的。 您可以调用像create()
这样返回实例的静态方法,然后可以在该实例上调用链中的后续函数。 这是一个简单的例子:
class TestModel { constructor() { this.data = {}; } static create() { return new TestModel(); } a() { this.data.a = true; return this; } b() { this.data.b = true; return this; } final() { return this.data; } } console.log(TestModel.create().a().b().final()); // => {"a": true, "b": true} console.log(TestModel.create().a().final()); // => {"a": true} console.log(TestModel.create().b().final()); // => {"b": true}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.