Javascript 在运行时向函数传递参数
我试图动态地将参数传递给函数。 在这个话题上,我发现了很多问题,但在某个地方我不明白 我的问题与情景非常相似。我使用方括号表示函数名和参数,但我不确定我错在哪里 如果有人能给我指一份关于这方面的好文件,那就太好了Javascript 在运行时向函数传递参数,javascript,Javascript,我试图动态地将参数传递给函数。 在这个话题上,我发现了很多问题,但在某个地方我不明白 我的问题与情景非常相似。我使用方括号表示函数名和参数,但我不确定我错在哪里 如果有人能给我指一份关于这方面的好文件,那就太好了 function myage(age) { alert("My age is " + age + "!!"); } model = [{ name : "Tom", age : 30, link : myage }, { name : "Jam
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>';
}
函数myage(年龄){
警惕(“我的年龄是”+年龄+”!!);
}
型号=[{
姓名:“汤姆”,
年龄:30,,
链接:myage
},
{
姓名:“詹姆斯”,
年龄:32岁,
链接:myage
}];
var-elem;
对于(变量i=0;i”;
}
这是一个错误,它不起作用。看来您的索引器放错地方了。因为“model”是数组,所以应该为模型建立索引。例如:
model[i].link
看来您的索引器放错地方了。因为“model”是数组,所以应该为模型建立索引。例如:model[i].link
由于您在onclick
属性中构造字符串,因此link
属性应该是函数的名称,而不是函数本身。然后你应该把参数放在括号里,而不是放在方括号里
函数myage(年龄){
警惕(“我的年龄是”+年龄+”!!);
}
型号=[{
姓名:“汤姆”,
年龄:"三十岁",,
链接:“我的年龄”
}, {
姓名:“詹姆斯”,
年龄:32岁,
链接:“我的年龄”
}];
var-elem;
对于(变量i=0;i”;
document.getElementById(“容器”).innerHTML+=elem;
}
由于您在onclick
属性中构造字符串,因此链接
属性应该是函数的名称,而不是函数本身。然后你应该把参数放在括号里,而不是放在方括号里
函数myage(年龄){
警惕(“我的年龄是”+年龄+”!!);
}
型号=[{
姓名:“汤姆”,
年龄:"三十岁",,
链接:“我的年龄”
}, {
姓名:“詹姆斯”,
年龄:32岁,
链接:“我的年龄”
}];
var-elem;
对于(变量i=0;i”;
document.getElementById(“容器”).innerHTML+=elem;
}
为什么要在单击时使用方括号?在返回数组或对象的表达式后面必须放上方括号,才能对其进行索引。为什么要在onclick
中使用方括号?在返回数组或对象的表达式后面必须放上方括号,以便索引到其中。如果用数字30和32代替数字30和32,我将它们写成字符串“三十”和“三十二”,上述代码是否应保持不变?您的代码中没有对年龄执行数学运算的内容,因此,不管它们是字符串还是数字。如果我使用数字30和32,上面的代码可以正常工作,但是对于字符串,代码开始寻找它的值(可能将其视为变量)。可能是什么问题?它需要在onclick
属性中的参数周围加引号,否则它将尝试使用字符串作为变量名。我已经更新了答案。如果我用字符串“30”和“32”代替数字30和32,那么上面的代码应该保持不变吗?你的代码中没有任何东西可以对年龄进行数学运算,所以不管它们是字符串还是数字。如果我用数字30和32,上面的代码可以正常工作,但是使用字符串,代码开始寻找其值(可能将其视为变量)。可能是什么问题?它需要在onclick
属性中的参数周围加引号,否则它将尝试使用字符串作为变量名。我已经更新了答案。