猿问

关于Underscore.js的源码问题

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记住就好,原理还是要懂才行。
是不是我对某个知识点了解的不够深?


FFIVE
浏览 418回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答