一个奇怪的js现象,求解答

勤奋的码农 发布于 2013/06/27 16:27
阅读 275
收藏 0
<html> 
<head> 
  <script> 
var tempA = 1; 
function cc(tempA){ 
alert(tempA); 
tempA = 2; 
} 
  </script> 
</head> 
<body> 
  <div onclick="cc(tempA)">aaaaaaa</div> 
</body> 
</html>



为什么 点击aaaaaaa弹出的永远是1?

加载中
0
wx---每日佳选
wx---每日佳选
自己给自己下的套,请把函数的参数名换一个.
0
傅小黑
傅小黑

window.tempA = 2

0
朱__朱
朱__朱
因为你传给cc函数的参数值永远是1,因为cc(tempA)写在了html代码中,经过dom渲染,等价于 <div onclick="cc(1)">aaaaaaa</div> 
0
晴风晓月
晴风晓月
function cc(tempA){
   alert(tempA);
   tempA = 2;


}
这一段肯定没有改变全局变量的值嘛,原因自己想。

0
王瑞平
王瑞平
结果是肯定的
0
G
GodOfBug
改变的参数 
0
hylent
hylent

引用来自“傅小黑”的答案

window.tempA = 2

+1
0
勤奋的码农

谢谢各位的回答,具体问题已了解:

tempA = 2;是给方法的参数赋值,不是为全局变量tempA赋值。

返回顶部
顶部