var _ = function(obj) { if (obj instanceof _) return obj; if (!(this instanceof _)) return new _(obj); this._wrapped = obj; }; 我想問下為什么 var _ 這個變量要指向這個函數,有什么意義嗎?我看了看源碼好像也沒有用到_()這樣的函數調用,很困惑。。。 _.first = _.head = _.take = function(array, n, guard) { if (array == null) return void 0; if (n == null || guard) return array[0]; return _.initial(array, array.length - n); }; _.initial = function(array, n, guard) { return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); }; 從上面看的話,_是個對象,frist和initial是_的方法才對,那為什么直向一個函數,我知道函數也是對象的一種,那為什么不直接new Object()呢?我第一次看源碼,看了高程和JUQERY,總感覺API記住就好,原理還是要懂才行。是不是我對某個知識點了解的不夠深?
關于Underscore.js的源碼問題
FFIVE
2018-10-13 13:10:50