javascript - 从自身内部重新分配 JavaScript 函数是不好的做法吗

标签 javascript

场景

我有一个 JavaScript 对象。此对象包含一个函数,该函数将根据 boolean 属性执行 statementAstatementBboolean 属性应该被认为是只读的,为了论证,我们假设它是在构造函数中设置的。

代码

var MyClass = function(flag) {
    this.flag = flag; // this will never change after here
}

MyClass.prototype.go = function() {
    if (this.flag) {
        this.go = function() {
            // statement a (true)
        };
    } else {
        this.go = function() {
            // statement b (false)
        }
    }

    this.go();
}

JS Bin demo

问题

从自身范围内重新分配一个方法是不好的做法吗?我曾尝试对此进行一些研究,但到目前为止我一直没有成功。

最佳答案

它是一样的,但更具可读性:

var MyClass = function (flag) {
    this.flag = flag; // this will never change after here
    this.go = flag ? function () {
        // statement a (true)
    } : function () {
        // statement b (false)
    };
}

关于javascript - 从自身内部重新分配 JavaScript 函数是不好的做法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31180809/

相关文章:

javascript - Div切换动画

javascript - jQuery 选择器没有像我预期的那样工作

javascript - 如何使用javascript隐藏元素

javascript - 如何在 Three.js 中围绕立方体旋转球体

javascript - 从 html 获取图像尺寸

javascript - 在调整窗口大小之前,无法让谷歌地图在 Bootstrap 模式中加载

javascript - 我的 Javascript 代码没有在 laravel 中运行

javascript - 与 Javascript 中的 If else 语句比较问题

javascript - 如何在 json (javascript) 中使用变量作为对象

javascript - 包含 JS,但不会在加载时触发?