我看了一些有关Jquery中each()函数的示例,但有点不明白,就是each()里面的function函数的变量名是不是随便写什么都可以,我看了几个例子://例子1
var arr = [ "one", "two", "three", "four"];
$.each(arr, function(){
alert(this);
}); //例子2
var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]
$.each(arr1, function(i, item){
alert(item[0]);
});
//例子3
var obj = { one:1, two:2, three:3, four:4};
$.each(obj, function(key, val) {
alert(obj[key]);
}); //例子4
$("img").each(function(i){
this.src = "test" + i + ".jpg";
});
如上面的4个例子,each()括号里的function中的参数,有的是i,item,key,val,这些参数有什么特殊么?我可不可以随便取名啊,比如:a,b,c等,真搞不明白呢,请大侠帮帮忙………………………………………………
var arr = [ "one", "two", "three", "four"];
$.each(arr, function(){
alert(this);
}); //例子2
var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]
$.each(arr1, function(i, item){
alert(item[0]);
});
//例子3
var obj = { one:1, two:2, three:3, four:4};
$.each(obj, function(key, val) {
alert(obj[key]);
}); //例子4
$("img").each(function(i){
this.src = "test" + i + ".jpg";
});
如上面的4个例子,each()括号里的function中的参数,有的是i,item,key,val,这些参数有什么特殊么?我可不可以随便取名啊,比如:a,b,c等,真搞不明白呢,请大侠帮帮忙………………………………………………
其实在js中向函数传值实际上是传递一个arguments对象。
所以下面的例子,虽然不使用index,element也一样可以访问向函数中传递的值。
不过建议使用jquery api的文档写参数名,因为那样更能显示出参数的含义<script type="text/javascript"> var arr = ["a", "b", "c"];
$.each(arr, function (index, element) {
alert(arguments[1]);
});
</script>
each数组时因为数组能用[索引]的方式访问,给你传两个参数:索引和值,够用了吧
each Json对象时因为json能通过 obj.key的形式读取单项,所以给你传两个参数:key和值,够用了吧
不传参数?至少有个this指向单项
太tmd人性化了,顺着它的思路想想。
return a + b;
};var add2 = function (x, y) {
return x + y;
};var add3 = function () {
return arguments[0] + arguments[1];
};函数的功能又不是函数名和参数名决定的,这些命名只是方便人阅读,增加代码可读性,对于机器来说无所谓。函数作为变量和调用参数,函数名及其参数名完全可以忽略,使用方也获取不到参数名。