日期:2014-05-16  浏览次数:20370 次

js 模式

1、JavaScript 要通过原型链来实现继承:

function ?Employee(first,?last,?position)?{??
??//?call?the?superclass?constructor ??
? Person.call(this ,?first,?last);??
??this .position?=?position;??
};??
//?inherit?from?Person ??
Employee.prototype?=?Object.create(Person.prototype);??
Employee.prototype.constructor?=?Employee;??
??
//?define?an?overridding?toString()?method ??
Employee.prototype.toString?=?function ()?{??
??//?call?superclass's?overridden?toString()?method ??
??return ?Person.prototype.toString.call( this )?+??
?????????'?is?a?' ?+? this .position;??
};?

2、发布订阅模式

var ?event?=?( function ()?{??
??
??//?private?variables ??
??var ?listeners?=?[];??
??
??function ?addEventListener(f)?{??
????listeners.push(f);??
??}??
??
??function ?clearEventListeners()?{??
????listeners?=?[];??
??}??
??
??//?... ??
??
??//?export?the?module's?API ??
??return ?{??
????addEventListener:?addEventListener,??
????clearEventListeners:?clearEventListeners??
????//?... ??
?};??
}());?

3、js 闭包实现

for ?( var ?i=0,?ilen=elements.length;?i<ilen;?i++)?{??
??var ?element?=?elements[i];??
??(function (num)?{??
????LIB_addEventListener(element,?'click' ,? function (event)?{??
??????alert('I?was?originally?number?' ?+?num);??
????});??
??}(i));??
}?

4、js 取得参数

function (a,?b,?option)?{??
??option?=?arguments.length?>?2???option?:?{};??
??//?... ??
}?