Remember to keep it Simple, Stupid.Do one thing and do it best.
首先看下
JSON.stringify(str, replaceor, place)
源码片段 1
function _toString(val) { // 排除 null undefined return val == null ? val + '' // 稍作改动 源码直接输出 ''空字符串 : typeof val === 'object' ? JSON.stringify(val, null, 2); : String(val) }JSON.stringify(val, null, 2);
美化作用,第三个参数决定序列化后键值对前方的空格数 _toString 下划线的命名区分原生的toString
JSON.stringify({key:'Vue'}) //"{"key":"Vue"}" JSON.stringify({key:'Vue'}, null, 4) // "{ // "key":"Vue" // }"源码片段2: 函数当作值传递
function map( str, isToLowercase ){ var list = str.split(','), //创造一个Plainboject 没有原型对象 map = Object.create(null), i = 0; for(; i < list.length; i++) { map [ list[i] ] = true; } return isToLowercase ? function (val) { return map[ val.toLowercase() ];} : function (val) { return map[ val ];} } //为了判断是否是内置模块 var isIn = map('slot,component', true); typeof isIn // function isIn('sea') // undefined isIn('slot') // true利用了闭包可以访问内部参数 isToLowercase , 还有就是把函数当作了返回值, 可以再次进行相关属性的判断 精妙
领个红包,小赞赏一下吧