首先,你讲的第一条和第二条是绝对不会的.可能是代码别处有问题你没发现.
函数定义时参数对应的是函数作用域内.
调用的时候参数名是对应的调用域.
所以,定义的时候函数内要引用定义处的参数名.
调用的时候,传的参数的变量名要对应调用域的变量
没代码不能实际分析,以后你会明白的.
参数undefined不一定是没有传,也可能是传之前没有定义.
3.标签内联的事件响应不必传参(一般只传this和event)。传其它参数是没有意义的.能传到的都是全局变量,全局变量直接在函数内都可以引用.
onclick="func2(a,b)",然后再func2(a,b)定义成setInterval("func1(a,b)",5000);
你这里func2传的参数a.b完全是没有意义的.setInterval调用的时候a和b是直接从全局环境里取的.
如果全局没有定义a,b就会报错.如果想从setInterval语句所在环境里提取变量,可以这样写
function b(a,b){
setInterval(function(){alert(a,b)},5000)
}
这里给setInterval传了个匿名函数,其实是和传函数道理是一样的.
function b(a,b){
setInterval(cf,5000) //注意,只传一个函数名,不加引号
function cf(){ //这里定义函数不用传参
alert(a,b) //这里a,b引用到上级函数作用域
}
}
xml异步读取文件要在服务器运行环境下测试。出于安全考虑,一般浏览器都对跨域访问有种种限制.
你要懂你写的脚本为什么出错,就要学会一句一句分析。这个参数哪里来的,为什么会传到这里?为什么换种写法就错了,两种写法实质的差别在哪里?