code: function(str, type){
    var s, code;
    if(type){
      if(!isNaN(type) && 110 > type){
        color = type
      }else{
        color = colors[type] || 0
      }
      s = '\033[' + color + 'm' + str + '\033[0m';
    }else{
      s = new String(str);
      
      for(var key in colors){
        Object.defineProperty(s, key, {
            value: '\033[' + colors[key] + 'm' + str + '\033[0m'
          , enumerable: false
          , writable: false
        })
      }
    }
    return s;
  }
docs: 染色
  @param {String} str 需要上色的字符
  @param {String|Number} [type] 颜色品种|ansi 颜色码
  @return {String|Object}
  
  Example:
  
  - console.log(color('ashin', 'red'))
  - console.log(color('ashin', 95))
  - console.log(color('ashin').error)