请解读这段代码,写个完整实例。
返回的
function (val) { return map[val.toLowerCase()]; }
在什么情况下使用?
/*
* 我的理解:
* 作用: 根据str, 生成一个map, 然后返回一个方法, 这个方法的作用是, 判断一个值是否在这个生成的map中.
* str: 用来生成map的字符串, 用','隔开
* expectsLowerCase: 是否转小写
*/
function makeMap (str, expectsLowerCase) {
var map = Object.create(null); // map: Object {}
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]; }
}