var wrapper = function(obj) { this._wrapped = obj; };
我看underscore.js时候看到的,下面这段是包装_
var _ = function(obj) { return new wrapper(obj); };
然后我就不懂这种包装类的用途了… 求指点
這樣在這個 func 裡的 this 就會指向 wrapper 出來的這個 object 本身
不好意思 我还是不太明白… 意思是这两快代码能让_能拥有_wrapped属性吗?
可能還得有些上下文才能說清楚為什麼要這麼作,但這樣的好處是可以把函式轉化為 object。
如此一來,如同你說的,就可以讓包裝過後的函式有這個_wrapper 的屬性
@shinka
var wrapper = function ( obj ) { this._wrapped = obj; }; wrapper.prototype.forEach = function ( fn ) { var i = 0 , len = this._wrapped.length; for ( ; i < len ; i ++ ) { fn( this._wrapped[i] ); } }; var _ = function ( obj ) { return new wrapper( obj ); }; _( [1, 2, 3, 4] ).forEach( function ( item ) { console.log( item ); } );
链式操作的需求吧。 wrapper函数生成一个对象,它的原型链上的方法都操作这个_wrapped值,但不返回操作结果,只返回这个对象自身return this以便链式操作。
return this
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
這樣在這個 func 裡的 this 就會指向 wrapper 出來的這個 object 本身
不好意思 我还是不太明白… 意思是这两快代码能让_能拥有_wrapped属性吗?
可能還得有些上下文才能說清楚為什麼要這麼作,但這樣的好處是可以把函式轉化為 object。
如此一來,如同你說的,就可以讓包裝過後的函式有這個_wrapper 的屬性
@shinka
链式操作的需求吧。 wrapper函数生成一个对象,它的原型链上的方法都操作这个_wrapped值,但不返回操作结果,只返回这个对象自身
return this以便链式操作。