标签:构造 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