源码如下
/**
* Make a map and return a function for checking if a key* is in that map.
*/
function makeMap (
str,
expectsLowerCase
) {
var map = Object.create(null);
var list = str.split(',');
for (var i = 0; i < list.length; i++) {
map[list[i]] = true;
}
return expectsLowerCase
? function (val) { return map[val.toLowerCase()]; }
: function (val) { return map[val]; }
}
应用
/**
* Check if a tag is a built-in tag.
*/
var isBuiltInTag = makeMap('slot,component', true);
测试
console.log(isBuiltInTag('slot')); // true
console.log(isBuiltInTag('tag')); // undefined
技术点:
1.闭包
2.Object.create(null)创建一个超轻量对象