var _ = function(obj) { if (obj instanceof _) return obj; if (!(this instanceof _)) return new _(obj); this._wrapped = obj; };这个函数写的妙不妙,如果你觉得妙,请分析下它的精妙之处?
1 回答
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
这是underscore的源码吧,为了:
Create a safe reference to the Underscore object for use below.
目的是,当使用者这样调用:(第一次)
_(obj)
就会返回:new _(obj)
然后就会再次调用到:
this._wrapped = obj;
以后对于_(obj)的调用都会返回this._wrapped,不会多余的new了。
怎么用?
var powerArray = _([]) // 此时powerArray,除了array本身的方法也拥有了underscore提供的增强方法 powerArray.push(1) powerArray.push(2) // [1,2] powerArray.min() // 1 (min方法就是underscore提供的)
添加回答
举报
0/150
提交
取消