JavaScript专家 - JavaScript中帮助函数的推荐方法是什么?

时间:2014-04-10 16:59:58

标签: javascript oop helper helper-functions

JavaScript专家

辅助功能的推荐方法是什么?我想选择一种技术,然后用它来创建我的新“类”。

以下是我考虑过的设计方案:

选项1:外部作用域中的助手函数,使用实例的上下文调用

function createPane (pane) {
    // logic to create pane
    var proto = Object.create(this.paneList);
    $.extend(paneProto, pane);
    return paneProto;
}

Panes.prototype.initialize = function (panes) {
    var _this = this;
    _.each(panes, function () {
        _this.panes.push(createPane.call(_this, this));
    });
}
  • 优点:简单的语法。 createPane未在实例上发布。
  • 缺点: createPane可在其他范围内访问。

选项2:关闭时的辅助函数,使用实例的上下文调用

Panes.prototype.initialize = (function () {

    function createPane (pane) {
        // same logic as last createPane
    }

    return function (panes) {
        // same logic as before - calls createPane
    }

})();
  • 优点: createPane未在实例上发布。
  • 缺点:可读性和可测试性较低;此助手的测试必须在初始化范围内进行。

选项3:将_添加到名称以指示私有方法

Panes.prototype._createPane = function (pane) {
    // same logic as last createPane
}

Panes.prototype.initialize = function (panes) {
    // same logic as last, except calls this._createPane
}
  • 优点: _createPane的隐式上下文就是实例。来自外部的可测试性。
  • 缺点:在实例上公开帮助函数。

0 个答案:

没有答案