我正在阅读underscore.js sources,试图了解所有内容。我还不了解的是_
对象的定义。它的来源是:
var _ = function(obj) {
if (obj instanceof _) return obj;
if (!(this instanceof _)) return new _(obj);
this._wrapped = obj;
};
在实际范围(生命)中,这指的是全局对象,尚未声明_
。
如果您键入_
并在控制台中输入Enter(例如chrome),假设您已加载下划线库,则您将获得与上述相同的函数定义。嗯 - 这是为了什么?为什么它不是一个普通对象{}
,所有函数/属性作为属性附加?
答案 0 :(得分:6)
Underscore的_
函数用作包围其他对象(如数组)的包装器,它不仅仅是方法的集合。
它需要做到这两点:
_.each(array, function () {...});
和此:
_(array).each(function () {...});