将索引值传递给javascript命名空间数组

将索引值传递给javascript命名空间数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,作为joomla网站的一部分,我有相当数量(>20)的相当长的英语句子数组(~50个元素),位于几个文件中。这些数组将由jquery click events访问,它将把句子显示为英语单词使用的示例。为单个句子生成数组索引的click event功能正在发挥作用。我想使用模块模式来命名数组的名称空间。根据 ,模块定义可以分布在多个位置。从模块可伸缩性的角度来看,这将非常有用。我修改了上述文章中的一个模块,因此: var namespace = function() { var inde

作为joomla网站的一部分,我有相当数量(>20)的相当长的英语句子数组(~50个元素),位于几个文件中。这些数组将由jquery click events访问,它将把句子显示为英语单词使用的示例。为单个句子生成数组索引的click event功能正在发挥作用。我想使用模块模式来命名数组的名称空间。根据
,模块定义可以分布在多个位置。从模块可伸缩性的角度来看,这将非常有用。我修改了上述文章中的一个模块,因此:

var namespace = function() {
     var index = 2;    // for example
     var arr = ["the boy is going home",
                "You and I are friends",
                "He has a book of mine"]; 
    return {
        get values() {
            return arr[index];
        }
    };
}();
console.log(namespace.values);
这就行了。但是,我想向模块传递一个数组索引,并让它返回相应的文本。如何做到这一点

var namespace = function() {
     var arr = ["the boy is going home",
                "You and I are friends",
                "He has a book of mine"]; 
    return {
        values: function(index) {
            return arr[index];
        }
    };
}();
console.log(namespace.values(1));
因此,当
IIFE
返回
名称空间
的对象属性时,我们将
作为一个函数(
方法
),并传入
索引
。一旦生命开始,你可以这样想

var namespace =  {
    values: function(index) {
        return arr[index];
    }
}
但是使用初始化的
arr
数组。

尝试以下操作:

namespace = function() {
     this.index = 2;    // for example
     this.arr = ["the boy is going home",
                "You and I are friends",
                "He has a book of mine"]; 
};
namespace.prototype.getValueAt = function(index){
   return this.arr[index];
};
console.log(namespace.getValueAt(0));

你的意思是想调用namespace.values(index)?
返回{values:function(index){return arr[index];}}
并用
console.log(namespace.values(*index*))调用它感谢大家,我感谢你们的帮助@Nick M你们的解释非常有帮助。干杯