首页 > 代码库 > 2015-11

2015-11

1、《JavaScript高级程序设计》

  • 变量命名,由于js是弱语言,为了便于阅读,可在变量前加上类型。(个人感觉对于不经常用的人,还是不太好记)如:数组aValues,布尔bValue,整型iValue,对象oType
  • 函数实际上是一个Function对象。但最好不要这样用,慢而且不直观。
function doAdd(iNum) {    alert(iNum + 100);}

等价于

doAdd = new Function("iNum", "alert(iNum + 100)");
  • 都有函数都必须是某个对象的方法,即Global对象,但是Global其实是一个不存在的对象,不能显示调用它。
  • 可以给构造函数提供属性和方法。
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;  }}

2015-11