代码C清楚了。关键本人对CALL不明白。

解决方案 »

  1.   

        修改this的引用
        也就是通常所说的javascript中继承的实现方法
      

  2.   

     var func=new function(){this.a="func"} 
        var myfunc=function(x){ 
            var a="myfunc"; 
            alert(this.a); 
            alert(x); 
        } 
        myfunc.call(func,"var"); 
    这与经典的对象冒充方法相似,简单说func冒充myfunc,所以myfunc里面alert(this.a)实际上就是引用func里this.a的值,而var是传递到mayfunc(x)里的参数x.<script type="text/javascript"> 
       var func=new function(){this.a="func"} 
        var myfunc=function(x){ 
            var a="myfunc"; 
            alert(this.a); 
            alert(x); 
        }  var myfunc=function(){ 
            var a="myfunc"; 
            alert(this.a); 
        } 
    func=new function(){
    this.a="xxx";
    myfunc.call(this);
    }    myfunc.call(func,"var"); 
    var myfunc=function(x){ 
            var a="myfunc"; 
    this.a=a;
            alert(this.a); 
            alert(x); 
        } 
    myfunc.call(this,"vars");

    </script>