javascript 設計模式 第一章 筆記

1.2若類型語言:
 javascript 3種元素類型:布爾值、數值型、字符串、
  對象類型和可執行代碼的函數類型
    null、未定義類型。   javascript

   原始數據類型按值傳遞,其餘類型按引用傳遞
  
 數據類型的轉換  原始類型能夠進行類型轉換 
  1.toString 方法能夠把數值、布爾型轉換爲字符串
  二、parsefloat、parseInt函數能夠把字符串轉換爲數值
  3.雙重「非」能夠把字符串、數值轉換成布爾值
  var bool = !!num; java


1.3 函數是一等對象
 函數是對象,
 1.能夠當初變量和參數傳遞給其餘的函數  
 2.能夠做爲返回值從其餘的函數傳出
 3.在運行時能夠進行構造
 4.能夠用function(){---} 語法建立匿名函數
  (functon(){
   var foo = 10;
   var bar =2
   alert(foot*bat)l 編程

  })(); 設計模式


 5.匿名函數最用途是用來建立閉包。
  閉包歸納:
   1.是一個受到保護的變量空間,由內嵌函數生成。
   2.函數級做用域,因此定義在函數的內部的變量外部不能訪問,
   javascript做用域 又是詞法性質的, 意味着函數運行在她定義她的做用域中不是在用調用它的做用域中,兩個結合起來,就能把變量包裹在函數中,而對其加以保護,用來建立(類的私有變量)
    var test;
   (function(){ 閉包

    var foo =10;
    var bar =2;
    test = function(){ 函數

     return foo*bar;
    } this

   })(); prototype


1.四、對象的易變性
  1.能夠爲函數添加屬性
  function displayError(msg){
   displayError.numtimes++;
  }
  2.能夠爲先前的你定義的類和實例化的地下進行修改
  function person(name,age){
   this.name = name;
   this.age = age; 設計

  } 對象

  prson.protype = function(){
   getName:function(){
    return this.name;
   }

  }

  person.prototype = function(){
   getAge:function(){
    return this.age
   }
  }
  /**
   * 建立對象
   */
  

  var alicer  = new Person ("alice",40)
  var bill  = new Person ("bill",30)

  /**
   * 修改類的方法
   */
  
  person.prototype.getGreenting  = function(){
   return "HI"+this.getName();
  }

  3.內省的概念 和反射 有時間須要好好閱讀一下。  這個概念不太理解


1.5 繼承

 1.javascript使用的是基於對象的原型式繼承,用來模擬基於類的繼承  


小結:

 使用的編程風格和選擇的設計模式應該要與所要具體的工做相稱。    

相關文章
相關標籤/搜索