<script type="text/javascript">
function MyAlert(str) {
alert(str);
}
function MyAlert2() {
alert("??"); //显示传进来的第一个参数,后面的也一样,当然我想他们的取值方式也一样
alert("??");
alert("??");
}
function GetFun(fun) {
alert("2");
fun(); //这里是 “3” ,但我这里如何将他传进行的fun的两个参数进行合并最后是 “3A” 谢谢
//然后我这里又要把这两个参数传给MyAlert2
//如最终效果代码为""
MyAlert2("我是MyAlert2","这是fun的第一个参数","这是fun的第二个参数");
alert("4");
}
alert("1");
GetFun(function () { MyAlert("3","A") });
</script>
其实就是我不知道 fun被传进行有多少个参数
用什么方法可以得到所有参数谢谢
那么在function MyAlert() {
alert(arguments.length);
}
就知道了
function GetFun(fun) {
alert(arguments.length);
alert(fun.arguments.length);
alert("2");
fun(); //这里是 “3” ,但我这里如何将他传进行的fun的两个参数进行合并最后是 “3A” 谢谢
//然后我这里又要把这两个参数传给MyAlert2
//如最终效果代码为""
MyAlert2("我是MyAlert2", "这是fun的第一个参数", "这是fun的第二个参数");
alert("4");
} 楼上的方法
alert(arguments.length);
可以得到我当前function的参数
但是如何得到
alert(fun.arguments.length);
的参数集合呢?
妥协点的方法是
var g =[]; function MyAlert(str) {
for(var tmp in arguments) {
g.push(arguments[tmp]);
}
}
function MyAlert(str) {
alert(str);
}
function MyAlert2() {
for (var i=0,l=arguments.length;i<l;i++){
alert(arguments[i])
}
}
function GetFun(fun) {
alert("2");
fun(); //这里是 “3” ,但我这里如何将他传进行的fun的两个参数进行合并最后是 “3A” 谢谢
//然后我这里又要把这两个参数传给MyAlert2
//如最终效果代码为""
MyAlert2("我是MyAlert2","这是fun的第一个参数","这是fun的第二个参数");
alert("4");
}
alert("1");
GetFun(function () { MyAlert("3","A") });
//如何把传进FUN的两个参数传给MyAlert2
//如最终效果代码为""
MyAlert2("我是MyAlert2","这是fun的第一个参数","这是fun的第二个参数");
}
GetFun(function () { MyAlert("3","A") });
楼主的认识有误。在GetFun里面,fun这个函数参数,你在下面调用时的代码“GetFun(function () { MyAlert("3","A") });”,是一种无参数的调用方式。你所说的参数,是传递给MyAlert的。不是传递给fun的,所以fun不可能接收到。你可以在MyAlert里按楼上几位说的方法,把参数逐个存入一个全局数组中。然后在MyAlert2里从这个数组中取出使用。
function MyAlert(str) {
//alert(str);
alert(str.join(""));
}
function MyAlert2() {
//alert("??"); //显示传进来的第一个参数,后面的也一样,当然我想他们的取值方式也一样
//alert("??");
//alert("??");
for (var i=0;i<arguments[0].length;i++ ) alert(arguments[0][i]);
}
function GetFun(fun) {
alert("2");
fun(); //这里是 “3” ,但我这里如何将他传进行的fun的两个参数进行合并最后是 “3A” 谢谢
//然后我这里又要把这两个参数传给MyAlert2
//如最终效果代码为""
var arr = Array.apply(null,fun.args);
//MyAlert2("我是MyAlert2","这是fun的第一个参数","这是fun的第二个参数");
arr.unshift("我是MyAlert2");
MyAlert2(arr);
alert("4");
}
alert("1");
GetFun((function () {var arr= Array.apply(null,arguments); fun= function(){ MyAlert(arr);};fun.args = arguments; return fun;})("3","A","B") );
</script>