Javascript:私有(private)函数的嵌套——好还是坏?

标签 javascript function nested

我经常使用这种结构:

var example = (function () {
    function privateFn2 () {
       ...
    }
    function privateFn1 () {
       ...
    }
    return {
        publicMethod1: function () {...
        },
        publicMethod2: function () {...
        }
    };
}());

我想知道的是:如果 privateFn1 是唯一调用 privateFn2 的函数/方法,按如下方式设置它是否被认为是更好的做法?

为清晰起见已编辑

var example = (function () {
    function privateFn1() {
        function privateFn2() {
        }
        ...
        privateFn2();
    }
    return {
        publicMethod1: function () {...
        },
        publicMethod2: function () {...
        }
    };
}());

当然,这是一个极其简化的示例。问题是我有很多私有(private)函数,我想知道嵌套是好还是不好。我知道这很可能是个人喜好问题,但我们将不胜感激地接受任何建议。

谢谢。

最佳答案

视情况而定。如果您有几个仅与另一个私有(private)函数相关的私有(private)函数,那么在这种情况下,对象或类可能会封装更多的功能,而不是应该的。

这里有一些问题要问:

  • 这些私有(private)函数有副作用吗?也就是说,他们是 操纵任何封闭的属性?如果不是,这是不是一些普遍的 可以静态实现并包含的逻辑 分别地?或者,这些私有(private)函数是否操纵了 可以移动到另一个类或对象的属性?
  • 私有(private)函数是在内部使用的简单任务特定辅助函数吗 更大的算法或控制功能;例如用于排序的过滤函数 数组,或其他某种迭代回调?如果是这样,那么它可能是事实上 清洁器将这些功能嵌套在内部并将它们置于主要范围之外 目的。其他代码是否需要这些功能?
  • 主私有(private)函数会被调用多少次?如果它会被称为非常 频繁地(在循环内或定时器间隔内)然后嵌套 内部的私有(private)函数可能会产生可测量的开销—— 如果有私有(private)功能,本来可以忽略不计 只是偶尔被调用。

总是需要权衡取舍,思考这些问题将帮助您决定什么最适合您的特定情况。

关于Javascript:私有(private)函数的嵌套——好还是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11873566/

相关文章:

具有两个指针的 C 函数

C++虚拟方法不起作用

c++ - 使用 OpenMP 并行化嵌套循环

nested - 从 CouchDB 检索分层/嵌套数据

JavaScript - 如何从键和值数组中创建值数组

javascript - 如何从 html 代码中隐藏/屏蔽 data-plyr-provider

javascript - Jquery在新数据加载之前清除数据

javascript - 具有序数 x 轴的多线图

javascript - jQuery document.ready 和函数放置

mongodb - 如何查询嵌套对象?