>来自于vue2.0版本的工具函数
;函数封装
function cached(fn) {
var cache = Object.create(null);
return function cachedFn(str) {
var hit = cache[str];
return hit || (cache[str] = fn(str));
};
}
;转化为驼峰写法
var camelizeRE = /-(\w)/g;
var camelize = cached(function (str) {
return str.replace(camelizeRE, function (_, c) {
return c ? c.toUpperCase() : '';
});
});
;首字母大写
var capitalize = cached(function (str) {
return str.charAt(0).toUpperCase() + str.slice(1);
});
>路径解析
;函数
var bailRE = /[^\w\.\$]/;
function parsePath(path) {
if (bailRE.test(path)) {
return;
} else {
var _ret = function () {
var segments = path.split('.');
return {
v: function v(obj) {
for (var i = 0; i < segments.length; i++) {
if (!obj) return;
obj = obj[segments[i]];
}
return obj;
}
};
}();
if (typeof _ret === "object") return _ret.v;
}
}
//---实例
let path = 'vue/test/common';
let exec = parsePath(path); ==>segments = ['vue','test','common'];
let obj={
vue:{
test:{
common:['index.html','home.html']
}
}
};
let isok = exec(obj) //--符合则返回对象本身,否则返回undefined