code: function(path, parent, defaults, ext){
      if( path === undefined ) return undefined;
  
      if(ext && typeof ext === 'object'){
        if(ext[path] !== undefined)  return ext[path];
      }
      
      // reject to get from computed, return undefined directly
      // like { empty.prop }, empty equals undefined
      // prop shouldn't get from computed
      if(parent === null) {
        return undefined
      }
  
      if(parent && typeof parent[path] !== 'undefined') {
        return parent[path]
      }
  
      // without parent, get from computed
      if (parent !== null) {
        var computed = this.computed,
          computedProperty = computed[path];
        if(computedProperty){
          if(computedProperty.type==='expression' && !computedProperty.get) this._touchExpr(computedProperty);
          if(computedProperty.get)  return computedProperty.get(this);
          else _.log("the computed '" + path + "' don't define the get function,  get data."+path + " altnately", "warn")
        }
      }
  
      if( defaults === undefined  ){
        return undefined;
      }
      return defaults[path];
  
    }
docs: simple accessor get ext > parent > computed > defaults