docs: function(fn)
    {
  
      if (this == null)
        throw new TypeError(" this is value or not defined");
      if (fn == null) return;
  
      var o = Object(this);
      var key, keys = Object.keys(o);
      var i = 0, len = keys.length;
  
      while(i < len)
      {
        key = keys[i];
        // value index key count
        if (fn.call(null, o[key], i, key, len) === false) break;
        i++;
      }
    }