学习vue源码笔记
function cached(fn) {
var cache = Object.create(null)
return function cachedFn(str) {
var hit = cache[str]
return hit || (cache[str] = fn(str))
}
}
/** * Camelize a hyphen-delimited string. */
var camelizeRE = /-(\w)/g
var camelize = cached(function (str) {
return str.replace(camelizeRE, function (_, c) {
return c ? c.toUpperCase() : ""
})
})
学习第169-185行代码,
1.cached利用闭包做缓存。
2.发现当replace第二个参数为函数时,不止有一个参数,当repalce正则里面有小括号时候会有四个参数,第一个为匹配到的字符串,第二个为小括号匹配到的,第三个为开始匹配的索引位置,第四个为原始字符串,如果没有小括号,则参数为三个。
还没有评论,来说两句吧...