在运行时向函数传递参数
Passing arguments to a function at run-time
我试图动态地将参数传递给函数。我在这个话题上发现了很多关于SO的问题,但在某个地方我没有得到它。
我的问题与这个场景非常相似。我使用方括号函数名和参数,但我不确定我错在哪里。
如果有人能给我指一份关于这方面的好的文档就太好了。
function myage(age) {
alert("My age is " + age + "!!");
}
model = [{
name : "Tom",
age : 30,
link : myage
},
{
name : "James",
age : 32,
link : myage
}];
var elem;
for(var i = 0; i < model.length ; i++) {
elem = '<li><a href="#" onclick=[' + model[i].link + '][' + model[i].age + ']>' + model[i].name + '</a></li>';
}
这是一个错误,不能工作
由于您在onclick
属性中构造字符串,因此link
属性应该是函数的名称,而不是函数本身。然后你应该把参数放在后面的圆括号里,而不是方括号里。
function myage(age) {
alert("My age is " + age + "!!");
}
model = [{
name: "Tom",
age: "thirty",
link: "myage"
}, {
name: "James",
age: 32,
link: "myage"
}];
var elem;
for (var i = 0; i < model.length; i++) {
elem = '<li><a href="#" onclick="' + model[i].link + '(''' + model[i].age + ''')">' + model[i].name + '</a></li>';
document.getElementById("container").innerHTML += elem;
}
<ul id="container"></div>
但是,如果您希望它在用户单击时查找链接,您可以这样做。您需要将文字model[i]
放在onclick
属性中,而不是函数中。
function myage(age) {
alert("My age is " + age + "!!");
}
model = [{
name : "Tom",
age : 30,
link : myage
},
{
name : "James",
age : "thirty-two",
link : myage
}];
var elem;
for(var i = 0; i < model.length ; i++) {
elem = '<li><a href="#" onclick="model[' + i + '].link(''' + model[i].age + ''')">' + model[i].name + '</a></li>';
document.getElementById("container").innerHTML += elem;
}
<ul id="container"></div>
看来你把索引器放错地方了。因为'model'是数组,你应该索引model。例如:model[i].link
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 函数未将值作为参数传递
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 为什么不'我们在javascript中使用函数参数的数据类型
- 你好,这是测试用例,我必须在函数中传递n个参数
- JavaScript - 多参数函数,它是多个图像库的字符串
- 如何从两个参数函数返回随机整数
- 以无点风格在Ramda中编写一个无参数函数
- JS:将单参数函数转换为可链接函数
- 正则表达式类似于Javascript中的参数函数
- 将 $' 值传递给替换的关联参数函数
- "这个“;在参数函数中
- 如何向jquery插件发送参数函数
- 将参数函数Node.js从一个js传递到另一个js
- 如何在javascript参数函数中传递PHP post方法字符串
- 装饰 Javascript Promise.then 以便参数函数接收附加参数
- 正在分析setInterval ID'是的's参数函数
- 如何根据一个参数函数计算年龄
- 对象参数/函数和/或三元运算符混淆