var Type = {}
for(var i =0, type; type =['String','Array','Number'][i++];){
(function(type){
Type['is'+type] = function(obj){
return Object.prototype.toString.call(obj) === '[object ' + type + ']';
}
})(type)
};
Type.isArray([]);
Type.isString('abc');
var getSingle = function(fn){
var ret;
return function(){
return ret || (ret = fn.apply(this, arguments));
};
};
var getScript = getSingle(function(){
return document.createElement('script'):
})
var script1 = getScript();
var script2 = getScript();
console.log(script1 === script2);