while(self) 
            { 
                if (self == aType) 
                  return true; //这里有退出循环
                self = self.Type; 
            }; 

解决方案 »

  1.   

    那这样的话,return返回的不都是true了吗?
      

  2.   

    self = self.Type; 当self.Type不存在时退出while,就返回false了
      

  3.   

    self.Type怎么会不存在呢?每个对象都是被CLASS生成的啊,既然是这样,每个都应该有一个TYPE啊,TYPE的属性应该都是对象啊
      

  4.   

           isA: function(aType)   //一个判断类与类之间以及对象与类之间关系的基础方法 
            { 
                var self = this; 
                while(self) 
                { 
                    if (self == aType) 
                      return true; 
                    self = self.Type; 
                }; 
                return false; 
            }
    這個while循環是用來判斷某個對象是否為aType類或繼承自aType類.
    因為我們的object是最基本的基類是沒有Type屬性的(即它的Type屬性為undefined), 所以當self = self.Type不停地把self的基類賦給self,直到把object基類賦給self時,如果還沒有滿足self == aType就會退出這個while循環.