<html>
<head>
<script type="text/javascript">
function foo()
{
var foo = document.getElementById("foo");<!-- foo此时的value=123 -->
alert(foo.value);
document.getElementById("foo").value = "abc";<!-- 修改dom节点foo的值,由123改为abc -->
alert(foo.value);<!-- 此时的结果...? -->
}
</script>
</head>
<body>
<input type="hidden" value="123" id="foo"/><!-- 初始值=123 -->
<input type="button" value="Click me" onclick="foo()"/>
</body>
</html>最后alert()的结果是什么?有多少人第一时间就能得到正确答案?

解决方案 »

  1.   

    ECMAScript 原始值和引用值
      

  2.   

    这个和叫javascript没有多大关系吧。
      

  3.   

    我以前一直以c语言的感觉理解js,,昨天工作中发现了这个情况,,觉得跟java中的对象引用是一样的
      

  4.   

    原来是原始值和引用值的区别,学习了
    不过跟为什么叫javascript没关系吧?
      

  5.   

    貌似当初java大放异彩,然后js为了沾沾星气,就叫了这个名字
      

  6.   

    因为我近一直在写java,感觉这一点跟java里面的传递引用很像,或者说跟oo语言的传递引用很像,,我不是专门搞前端的,js没认真学过,有时还是用c的思想理解它,,现在看它内存的分配方式果然是类java式的,,或者说是oo语言式的,,,
      

  7.   

    因为我近一直在写java,感觉这一点跟java里面的传递引用很像,或者说跟oo语言的传递引用很像,,我不是专门搞前端的,js没认真学过,有时还是用c的思想理解它,,现在看它内存的分配方式果然是类java式的,,或者说是oo语言式的,,,
      

  8.   

    和java没关系的   只是商业上的合作罢了
      

  9.   

    引用类型的特点,并非java独有,C#有引用类型,C++有指针,都是这么回事,我想javascript不是因为这个原因名称中带java
      

  10.   

    对啊,,oo式的语言都有,,而在那个年代java是oo语言的代表,所以叫javascript吧
      

  11.   

    function foo()
     {
     var foo = document.getElementById("foo");<!-- foo此时的value=123 -->
    alert(foo.value);
     document.getElementById("foo").value = "abc";<!-- 修改dom节点foo的值,由123改为abc -->
    foo = document.getElementById("foo");
    alert(foo.value);<!-- 此时的结果...? -->
     }