var utilBasic = {
    /**
     * 检查一个对象是否是$.ajax的返回 (类promise对象)
     *
     * 注: 这个函数并不完美, 只能大致猜
     *
     * @param target
     */
        isAjaxCallback(target) {
        return !!target
            && ('readyState' in target)
            && ('done' in target)
            && ('error' in target)
            && ('abort' in target);
    },

    generateClassName(classNames) {
        return Object.keys(classNames)
            .map(x =>
                // key 如果以 _ 开头, 则输出内容
                x.substr(0, 1) == '_' ? classNames[x] :
                    // 否则, 如果内容为真, 则输出 key
                    classNames[x] ? x : '')
            .join(' ');
    },

    parseHashParams(paramString) {
        if (typeof paramString == 'undefined') {
            paramString = location.hash;
        }
        paramString = paramString && paramString.replace(/^#/, '') || '';

        var paramObject = {};
        paramString.split('&')
            .map(pairString => {
                var pair = pairString.split('=');
                var key = _.trim(decodeURIComponent(pair[0] || ''));
                var value = _.trim(decodeURIComponent(pair[1] || ''));

                if (key) {
                    paramObject[key] = value;
                }
            }
        );

        return paramObject;
    },

    getHashParamStr(paramObject) {
        var paramString = Object.keys(paramObject)
            .map(key => encodeURIComponent(key) + '=' + encodeURIComponent(paramObject[key]))
            .join('&');

        return paramString;
    }
};

export default utilBasic;