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