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?:?{};??
??//?...??
}?