1.
一般采用 JS 函数构造类型 动态原始方法 和 构造函数/原型方式。
动态原始方法:
function Car(sColor,iDoors,iMpg) { this.color = sColor; this.doors = iDoors; this.mpg = iMpg; this.drivers = new Array("Mike","John"); if (typeof Car._initialized == "undefined"
) { Car.prototype.showColor = function() { alert(this.color); };Car._initialized = true;
} }
混合的构造函数/原型方法:
function Car(sColor,iDoors,iMpg) { this.color = sColor; this.doors = iDoors; this.mpg = iMpg; this.drivers = new Array("Mike","John"); } Car.prototype.showColor = function() { alert(this.color); }; var oCar1 = new Car("red",4,23); var oCar2 = new Car("blue",3,25); oCar1.drivers.push("Bill"); alert(oCar1.drivers); //输出 "Mike,John,Bill" alert(oCar2.drivers); //输出 "Mike,John"
2.
Function.prototype.originalToString = Function.prototype.toString;
Function.prototype.toString = function() { if (this.originalToString().length > 100) { return "Function too long to display."; } else { return this.originalToString(); } };在重写原方法的时候最好 将原方法做一个指针出来, 以便以后如果要使用被覆盖前的方法。