js与设计模式----简单工厂
简单工厂模式是由一个方法来决定到底要创建哪个类的实例, 而这些实例经常都拥有相同的接口.
这种模式主要用在所实例化的类型在编译期并不能确定, 而是在执行期决定的情况。
比如ajax会有jsonp、get、post等方式的调用方法。
var request1 = Request('cgi.xx.com/xxx' , ''get' );var request1 = Request('cgi.xx.com/xxx' , ''post' );以下代码为模拟js构造函数
function ObjectFactory(){ var obj = {}, //把传入的参数当作数组保存在
Constructor,call方法意为调用数组的shift方法执行arguments的内容 Constructor = Array.prototype.shift.call( arguments ); //郁闷,求大神指点
obj.__proto__ = typeof Constructor .prototype === 'number' ? Object.prototype: Constructor .prototype; var ret = Constructor.apply( obj, arguments ); return typeof ret === 'object' ? ret : obj; }function A( name ){
this.name = name; }var a = ObjectFactory( A, 'svenzeng' );
alert ( a.name ); //svenzengObjectFactory函数模拟JavaScript的new的过程,就是一个工厂,传入A函数名,然后传入需要的参数,完成构造 。
浙公网安备 33010602011771号