Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在运行时向函数传递参数_Javascript - Fatal编程技术网

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
    属性中的参数周围加引号,否则它将尝试使用字符串作为变量名。我已经更新了答案。