Javascript构造函数访问自己的私有方法?

时间:2016-04-11 02:02:49

标签: javascript class oop methods scope

我班上有一种方法,我不想公开。我想知道是否可以从构造函数中访问该方法?

例如:

(function () {
    var Config = function() {
        this.data = this.getOptions();
        var options = document.querySelector('.options');
        options.addEventListener('click', this.toggleOption, false);
    };

    Config.prototype = function() {
        var getOptions = function() {
            // public method
        },

        toggleOption = function() {
            // private method
        };

        return {
            getOptions: getOptions
        };
    }();

    var config = new Config();

})();

如果以前曾经问过这个问题,我很抱歉,但这可能吗?

1 个答案:

答案 0 :(得分:0)

这取决于你想揭露它的原因。

例如,如果您希望公开该变量以进行单元测试,则可以执行以下操作:

if (window.someUnitTestingGlobal) {
  var gprivate = {
    toggleOption: toggleOption
  };
}


return {
    getOptions: getOptions,
    gprivate: gprivate
};