从字符串动态创建Javascript对象,并将对象作为函数的参数
Dynamically create Javascript Object from String and put object as parameters of function
我想从Javascript字符串创建Javascript对象。
var arrayOfName = new Array();
arrayOfName.push("module1");
arrayOfName.push("module2");
arrayOfName.push("module3");
arrayOfName.push("module4");
在这个例子中,我想创建4个对象:module1, module2, module3和module4。
之后,我怎么能传递这些对象作为一个函数的参数?像这样:
this.myFunctionTest = function myFunctionTest(module1, module2, module3, module4) {
// ...
}
理想情况下,代码必须适用于Javascript数组中名为"arrayOfName"的所有元素。
使用函数原型的.apply
函数
myFunctionTest.apply(this, arrayOfName);
注意:您可以在这里找到更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply
您可以这样使用Function.prototype.apply
myFunctionTest.apply(this, arrayOfName);
apply
函数将arrayOfName
的所有元素作为参数传递给myFunctionTest
。
随着参数数量的增加,您可能不希望或发现难以维护这些数量或参数。别担心,JavaScript已经覆盖:)它有一个叫做arguments
的东西,它是一个数组一样的对象。您可以使用arguments[0]
访问第一个参数,就像访问普通数组对象一样。
var arrayOfName = [];
arrayOfName.push("module1");
arrayOfName.push("module2");
arrayOfName.push("module3");
arrayOfName.push("module4");
function myFunctionTest(param1, param2, param3) {
console.log(param1, param2, param3);
console.log(arguments);
}
myFunctionTest.apply(this, arrayOfName);
// module1 module2 module3
// { '0': 'module1', '1': 'module2', '2': 'module3', '3': 'module4' }
如果你想要节点模块,使用这个方法
var modules = ["lodash", "underscore", "q"];
require.apply(this, modules);
但是如果您想获得require
为每个模块返回的对象,那么您最好的选择是使用Array.prototype.map
和require
,像这样
console.log(modules.map(require));
如果你有这样一个函数
function modules(module1, module2, ...) {
...
}
如果你想用所有加载的模块调用它,那么你可以这样做
modules.apply(this, modules.map(require));
相关文章:
- 创建对象函数原型和代码是错误的
- JavaScript模块模式-如何在使用对象/函数之前激发构造函数/init函数
- 如何从onclick字符串中引用javascript对象函数
- 更改对象函数仅用于示例
- javascript和jQuery的嵌套对象函数中的变量范围
- 将对象函数传递给请求动画帧时丢失对象引用
- 对象函数返回函数而不是值
- 使用onclick调用属性对象函数
- javascript拉斐尔对象函数传递
- 如何从onClick事件调用对象函数
- 可以't获取具有“t”的对象变量;这个“;由setTimeout()函数调用的对象函数中的属性
- 对象没有't继承父对象函数
- 调用父对象函数
- "这个“;对象函数内部的引用
- 将变量添加到对象函数调用的末尾
- 传单错误:对象函数没有方法'createIcon'在LayerGroup中创建自定义图标标记时
- TypeError:对象函数Object(){〔本机代码〕}没有方法'方法'
- 挖空 - 单击绑定到对象函数 - 范围问题
- 类型错误: 对象函数...没有方法“打开”
- JavaScript 对象函数