ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
>来自于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