<script language="javascript">
function picture()
{
}
var pic=new picture();
pic.width=200;
pic.height=200;
function show()
{
alsert(pic.width + pic.height);
}
pic.show=show;  //为什么这里还要给PIC赋给SHOW方法 如果不付为何就不能调用SHOW函数呢,直接调用不行吗
pic.show();
</script>

解决方案 »

  1.   

    pic.show=show; 是使 show 方法可以共享 pic 实例的资源, 如 this.width 如果不 pic.show=show; 
    则 show 无法直接访问 pic 实例的资源你使用 pic.width 那样子失去了使用对象的必要
    应当这样:
    <script type="text/javascript">
    //<![CDATA[function picture() 

     var PrivateInsance = this;
    }
     
    var pic=new picture(); 
    pic.width=200; 
    pic.height=200; 
    pic.show=show;     //为什么这里还要给PIC赋给SHOW方法   如果不付为何就不能调用SHOW函数呢,直接调用不行吗 
    pic.show(); function show() 

     alert(this.width   +   this.height); 
    } //]]>
    </script>
      

  2.   


    <script type="text/javascript"> 
    function picture(width,height)
    {
        this.width = width;
        this.height = height;
        this.Show = function(){ alert(this.width+this.height); };
    }
    var pic = new picture(200,200);
    pic.Show();
    </script>为什么这里还要给PIC赋给SHOW方法   如果不付为何就不能调用SHOW函数呢,直接调用不行吗 
    直接调用是可以的 但是你那个Show的方法只对picture的一个实例pic有效 对于picture别的实例 那是不可能生效的