为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript 静态方法链接

Javascript 静态方法链接

UYOU 2023-05-11 16:29:40
我可以在 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()
查看完整描述

1 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

其他人在评论中解释说您希望方法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}


查看完整回答
反对 回复 2023-05-11
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信