<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function test() {
            this.value = 1;
            this.get = function () { alert(this.value); }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input type="text" id="a" value="a" />
        <input type="text" id="b" value="b" />
    </div>
    <script type="text/javascript">
        var t = new test();
        document.getElementById("a").onclick = function () { t.get()};//这个结果是1
        document.getElementById("b").onclick = t.get();//这个效果是加载页面就会弹对话框显示1,怎么理解?
        document.getElementById("b").onclick = t.get;//这个是取get值,所以点击b文本框时,取得b的value值显示b,可以理解
    </script>
    </form>
</body>
</html>

解决方案 »

  1.   


    function () { t.get()};你定义了这个函数,a的click后调用这个函数,这个函数里有t.get();对于 document.getElementById("b").onclick = t.get();当程序走到这里就会t.get()了
      

  2.   

    执行function(){alert(this.value);}
    getElementById("a").onclick 点击执行
      

  3.   

    我觉得你的理解有问题。“function () { t.get()};你定义了这个函数”和这个匿名函数根本没有关系。
      

  4.   

    function () { t.get()}; 这是定义
    t.get()是调用
      

  5.   

    打开页面执行执行function(){alert(this.value);}
    a要点击执行才执行 function () { t.get()};
      

  6.   

    我知道打开时会执行function(){alert(this.value);}我想知道为什么会执行,求指教
      

  7.   

    document.getElementById("b").onclick = t.get();这个和我直接写t.get()有区别吗?我这种写法xxx=t.get()是不是有问题?
      

  8.   

    document.getElementById("b").onclick = t.get();
    相当于
    var a = t.get();
    document.getElementById("b").onclick = a;
    这样看明白了吧
      

  9.   

    var a = t.get();就会调用函数。这个和直接写t.get()有什么区别?var a = t.get();这样的表达式有意义吗?这个时候a有什么用啊?  
      

  10.   


     function test() {
                this.value = 1;
                this.get = function () { alert(this.value); }
            }
    //执行test()方法当然要弹出1了