返回

属性查找函数

var splitPoint = function(obj, attr) {
    var arr = [],
        i = 0,
        length,
        result,
        flag = obj && typeof attr=== 'string' && attr !== '';
    if (!flag || attr === '') {
        result = false;
    } else {
        arr = attr.split(".").filter(function(item) {
            return item !== '';
        });
        length = arr.length - 1;
        for (i = 0; i < length; ++i) {
            obj = obj[arr[i]];
            if (!typeof obj === "object") {
                    result = false;
                    break;
                }
            }
    }
    return {
        get: function() {
            if (result === false) {
                console.error("找不到属性");
            } else {
                return arr.length ? obj[arr[length]] : obj[attr];
            }

        },
        setValue: function(value) {
            if (value === undefined) {
                console.error("请给参数");
                return;
            } else if (result === false) {
                console.error("找不到属性");
            } else {
                arr.length ? obj[arr[length]] = value : obj[attr] = value;
            }
            return obj;
        }
    }
}