javascript - 如何在构造函数中使用静态辅助方法(无需在那里声明它们)?

标签 javascript ecmascript-6 es6-class

我正在学习 ES6 类(class)。有没有一种方法可以使构造函数以及其他地方都可以访问辅助函数(例如用于数据修改),这样我就不会两次输入该函数(作为构造函数中的 IIFE 和静态类方法)?

例如,我现在这样做是因为 getDimensions不可在构造函数中调用:

class Foo {

    constructor(data){
        this._data = data;
        let dimensions = function(data){
            //return some dimensions
        }(data);
        this._x = d3.scaleLinear().domain([dimensions])...
    }

    static getDimensions(someData){
        //same calcs as the constructor IIFE
    }

    updateScale(newData){
        let dimensions = getDimensions(newData);
        this.x = d3.scaleLinear().domain([dimensions]);
    }
}

是否可以/明智地为自己提供一个可以在原型(prototype)方法和构造函数中使用的静态辅助方法?

最佳答案

getDimensions 是一个静态方法,因此您必须将其作为 Foo 对象的属性来访问。您应该执行 Foo.getDimensions(newData),而不是 getDimensions(newData)

关于javascript - 如何在构造函数中使用静态辅助方法(无需在那里声明它们)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39965039/

相关文章:

javascript - Node.js setTimeout 上下文问题

angular - Typescript 如何从嵌套对象 Getter 返回类函数引用

javascript - Backbone.syphon 和复选框

javascript - JS 流 : What is the most clean and concise way to define an enum that is also treated like a type

javascript - 防止 HTML 形式的 JS/CSS

ecmascript-6 - 如何让 Babel 6 编译为 ES5 javascript?

javascript - 在 es6 javascript 类的非静态成员函数中调用静态 getter

javascript - NestJS 在服务类中丢失此内部函数方法的上下文

javascript - Meteor-package : Import JSON-array to mongoDB

javascript - 如何使用 JavaScript 获取选择标签上的选定值?