1. 程式人生 > 其它 >node.js學習與應用

node.js學習與應用

學習資料

入門:

小白篇 http://samsungapps.csdn.net/text.html?arcid=311044

瞭解了 npm,類似於python的easy_install 把依賴的模組安裝到node.js預設的lib目錄中(其實大部分就是copy)

進階:

進階篇 http://archive.cnblogs.com/a/2127237/

把the node beginner book 讀一遍會對事件模型 函式引數傳遞有個大概瞭解

深入:

http://www.cnblogs.com/phphuaibei/archive/2011/09/03/2165437.html

 eclipse js 外掛

下載地址: http://download.macromedia.com/pub/labs/jseclipse/autoinstall

js的prototype使用:

一個常用的方法(小白如我看到很驚奇):

var Closure = function(){}
Closure.prototype={
    hello:function(){
        console.log("hello world")
    }
}
c = new Closure()
c.hello()

所有的物件都可以有prototypes, prototypes自己也是物件,那麼他也可以有prototypes,這樣迴圈下去就形成了一個prototype鏈,  這個鏈當他遇到鏈中隊形的prototype是null時中止。(Object的預設的prototype是null) 

js closure

var name = "The Window";
var object = {
    name : "My Object",
    getNameFunc : function(){
      var that = this;
      return function(){
         return that.name;
      };
    }
};
alert(object.getNameFunc()())

預設的this是windows 會使用全域性name,需要在閉包中使用當前object的屬性name

js小知識:

  1. var 定義變數和不帶var的區別:會導致分不清全域性和區域性變數,區域性變數應用var宣告,最好全用var宣告。
  2. 閉包帶出包含函式的作用域,會多佔記憶體,非必須儘量少用
  3. setTimeout和setInterval的語法相同。它們都有兩個引數,一個是將要執行的程式碼字串,還有一個是以毫秒為單位的時間間隔,當過了那個時間段之後就將執行那段程式碼。不過這兩個函式還是有區別的,setInterval在執行完一次程式碼之後,經過了那個固定的時間間隔,它還會自動重複執行程式碼,而setTimeout只執行一次那段程式碼。