在静态函数类中返回 this

可能的习惯

我有两个对象,我想创建单例类,然后像这样调用它们Row.init([789]).render()在第一种情况下,我尝试并有效:

var Row = (function (options) {
        console.log(options);
        this.data = [123];
        this.render = function () {console.log(this.data);}
        this.init = function (data) {
            this.data = data;
            return this;
        }
        return this;
    })();

但在第二种情况下:

class Row {
    constructor() {
        this.data = {};
    }
    static init(data) {
        this.data = data;
        return this;
    }
    fill() {
        return this;
    }
    render() {
        console.log(this.data);
    }
}

它不能调用渲染方法,我认为它不会为我返回这个。我如何解决它?在第一种情况下,如何传递 options 参数?

贝尔吉

当您使用类时,它不再是单例。您需要在init函数中创建一个实例

class Row {
    constructor() {
        this.data = {};
    }
    static init(data) {
        return new this(data);
    }
    fill() {
        return this;
    }
    render() {
        console.log(this.data);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章