function Team(){
    var obj = {};
    
    obj.test.init();//疑惑 为什么obj可以调用  只要加入原型链任何对象都可以调用?
}
Team.prototype={
    test:{
         init:function(){
             alert("ssss");
         }
    }
}

解决方案 »

  1.   


    function Team(){
    }
    Team.prototype={
      test:{
      init:function(){
      alert("ssss");
      }
      }
    }
    var obj = new Team();
    obj.test.init();
    </script>LZ的代码好奇怪,应该是这样吧
      

  2.   


    function Team(){
      var obj = this;
      obj.test.init();//疑惑 为什么obj可以调用 只要加入原型链任何对象都可以调用?
    }
    Team.prototype={
      test:{
      init:function(){
      alert("ssss");
      }
      }
    }
      

  3.   


    要么你的代码没给全,要么你的代码就是忽悠人的.function Team(){
      var obj = {};
        
      obj.test.init();//疑惑 为什么obj可以调用 只要加入原型链任何对象都可以调用?
    }
    Team.prototype={
      test:{
      init:function(){
      alert("ssss");
      }
      }
    }
    你这里的
    obj.test.init()
    完全跟下面的原型搭不上边的
      

  4.   

    function DeskTop(options){
        var obj = {},div = document.createElement('div');
        div.className ='activeDiv';
        extend(obj,arguments.callee.prototype,options||{});
        div.style.top=obj.top+'px';
        div.style.left=obj.left+'px';
        obj.drag.init(div)
        return div;
    }
    DeskTop.prototype={
        drag :{
            elem    : null,
            zindex  : 0,
            options : {},
            init    : function(){        
                each(arguments,function(i,elem,oThis){
                     addListener(elem,'mousedown',BindAsEventListener(oThis,oThis.start,elem));
                },this);
            },
            start : function(e,elem){
                var elem=this.elem = elem;
                elem.style.zIndex=++this.zindex;
                this.x = e.clientX - elem.offsetLeft ;
                this.y = e.clientY - elem.offsetTop;
                this.marginLeft = parseInt(currentStyle(elem).marginLeft)||0;
                this.marginTop  = parseInt(currentStyle(elem).marginTop)||0;
                Sys.ie?elem.setCapture():e.preventDefault();
                addListener(document,"mousemove",BindAsEventListener(this,this.move));
                addListener(document,"mouseup",Bind(this,this.up));  
                this.options.callbackmove&&this.options.callbackmove(this.elem);
            },
            move  : function(e){
                window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
                var iLeft = e.clientX - this.x,iTop = e.clientY - this.y;obj = this.elem;
                obj.style.left = iLeft - this.marginLeft + "px";
                obj.style.top  = iTop - this.marginTop + "px";
                this.options.callbackmove&&this.options.callbackmove(this.elem);
            },
            up   : function(){
                removeListener(document,'mousemove');
                removeListener(document,'mouseup');
                Sys.ie&&this.elem.releaseCapture();
                this.options.callbackup&&this.options.callbackup(this.elem);
            }
        }
    }
    这是源码
      

  5.   

    extend()方法 和 jquery的extend方法功能相同
      

  6.   

    extend(obj,arguments.callee.prototype,options||{});
    这里arguments.callee指的就是DeskTop
    既然他继承了他的原型,obj当然可以有DeskTop所有的属性和方法了