猿问

Javascript 静态方法链接

我可以在 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()


UYOU
浏览 98回答 1
1回答

慕码人8056858

其他人在评论中解释说您希望方法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}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答