Javascript:使用 "Module Pattern"引用变量,有什么想法吗?

标签 javascript oop

好的,我有一个名为“SelectorsModule”的模块。在其中,我有一个对象文字,它将包含将在各种用户交互期间在应用程序中使用的所有 jQuery 选择器(见下文)

为了避免每次使用选择器时重复相同的 $(selector) 代码,我认为将所有共享选择器元素放入其自己的“SelectorsModule”中会更有效。这样,如果需要进行任何更改,只需修改一处即可,一切仍然有效。每个选择器也可以从一个地方调用,即。例如,“SelectorsModule.getSelectors.selectorTwo”。

var SelectorsModule = SelectorsModule || {};

SelectorsModule = (function(){

    // Private methods and variables
    var sharedSelectors = {
        selectorOne:            $("#element-one"),
        selectorTwo:            $("#element-two"),
        selectorThree:          $("#element-three"),
        selectorFour:           $("#element-four")
    };

    // Public methods and variables
    return{

        getSelectors: function(){
            return sharedSelectors;
        }
    };

})();

我的问题:

  1. 每次我现在在代码中使用 SelectorsModule.getSelectors.selectorOne(以获取 jQuery 选择器对象)时,我只是引用 SelectorsModule 的单个实例吗? code>,在脚本首次运行时创建,或者是一个新的 SelectorsModule“对象”,每次在幕后创建?后者显然会表现得更差,真的只需要一些澄清吗?

  2. 我当前的方法是错误的、有缺陷的、正常的、良好的、完美的还是正确的?

最佳答案

1) 您使用最初创建的模块的相同实例。

2)我觉得这很好。

关于Javascript:使用 "Module Pattern"引用变量,有什么想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25106265/

相关文章:

javascript - 当路由到具有不同参数的同一页面时,NextJS 初始状态不会更新

Javascript 清除 DOM

javascript - 通过 highcharts 上的 setData 操作数组进行添加

java - 使用 super() 时幕后发生了什么

javascript - 如何使用可重用方法和私有(private)属性创建 Javascript 对象创建模式?

php - 直接使用模型的类静态方法,没有 "USE"关键字

javascript - 我怎样才能拥有能够扩展一行中所有列的 Bootstrap 文本区域

javascript - JavaScript 中方法和函数之间区别的基本代码示例

java - 为什么这个类中的某些构造函数使用 this(context) 而不是 super(context)?

javascript - 为什么这个 javascript 继承会导致引用共享数组?