标签:构造 pre obj 显示 改进 ... 属性 prototype 创建
1、《JavaScript高级程序设计》
function doAdd(iNum) { alert(iNum + 100); }
等价于
doAdd = new Function("iNum", "alert(iNum + 100)");
function sayHi(){ alert("hi"); } sayHi.alternate = function(){ alert("hola"); }; sayHi(); sayHi.alternate();
1、工厂方式
function createCar(){ var oTempCar = new Object; oTempCar.doors = 4; ... oTempCar.run = function(){ ... } }
var car = createCar();
缺点是每次都会创建自己的函数版本
改进:
function run(){ } function createCar(){ var oTempCar = new Object; oTempCar.doors = 4; ... oTempCar.run = run; } var car = createCar();
2、构造函数方式
function Car(){ this.doors = 4; ... this.run = function(){ ... } } var car = new Car();
只是new的时候更像对象类,但是还是会重复创建函数
3、混合的构造函数/原型方式
function Car(){ this.doors = 4; ... } Car.prototype.run = function(){ ... } var car = new Car();
4、动态原型法
把方法像java一样写在Car类中。
function Car(){ this.doors = 4; ... if(typeof Car._initialized == "undefined"){ Car.prototype.run = function(){ ... }; Car._initialized = true; } }
标签:构造 pre obj 显示 改进 ... 属性 prototype 创建
原文地址:http://www.cnblogs.com/jieqing/p/4989400.html