速度优化的动态方法

时间:2018-11-23 20:23:02

标签: typescript

我目前正在移植一些JavaScript代码,但我不知道移植此类代码的最佳方法:

function verySlowCalculationOnlyDoThisOnce() {
    console.log("logging slow calculation");
    return "bye";
}

Test = function(name) {
    this.name = name;
}

Object.assign(Test.prototype, {
    hello: function() {
        console.log("hello " + this.name)
    },

    bye: (function() {
        var byeMessage = verySlowCalculationOnlyDoThisOnce();
        return function() {
            return byeMessage + ", " + this.name + "!";
        }
    }())
})

bye方法基本上只准备一次返回值的一部分,每个test = new Test("you")将重用慢速函数的结果。

如何为TypeScript重写此类代码?

实际生活中的例子是这样的:

https://github.com/playcanvas/engine/blob/583883cc5111fabb64f2f57177f715cd6fa777fc/src/math/mat4.js#L418-L452

三个Vec3被分配一次以防止垃圾收集。

0 个答案:

没有答案