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