2015-11
阿新 • • 發佈:2017-05-18
blog 程序設計 class 不存在 lte global div pre 而且
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