underscore里面類型檢查有這樣一段源碼: _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {
_['is' + name] = function(obj) { return toString.call(obj) === '[object ' + name + ']';
};
});這樣后為啥就可以調(diào)用_.isFunction() _.isNumber()這些函數(shù)了?補(bǔ)充:_.each()函數(shù)就是循環(huán)的使用第二個(gè)參數(shù)(也就是函數(shù))依次將第一個(gè)參數(shù)里面的值傳人到函數(shù)里面執(zhí)行,上面代碼執(zhí)行后也就是聲明了很多匿名函數(shù)。上面代碼里面each沒有給第三個(gè)參數(shù)指定執(zhí)行環(huán)境,為啥就綁定到_這個(gè)對(duì)象上了呢?還有就是_['is' + name] = function()這樣加[]是啥意思?不是應(yīng)該這樣寫嗎:_.['is' + name] = function() 但是這樣寫又肯定不對(duì)呀。希望大神解惑,拜謝!
underscore源碼類型檢測(cè)問題
牛魔王的故事
2018-10-16 10:09:47