js中Let用法

let 語句聲明一個塊級作用域的本地變量,並且可選的將其初始化爲一個值

描述

let 允許你聲明一個作用域或被限制在塊級中的變量、語句或者表達式。

與var不同的是,它聲明的變量只能是全局或者整個函數塊的換句話,塊級 == { }

AMD規範簡單到只有一個API,即define函數:

define([module-name?], [array-of-dependencies?], [module-factory-or-object]);
  其中:
  module-name: 模塊標識,可以省略。
  array-of-dependencies: 所依賴的模塊,可以省略。
  module-factory-or-object: 模塊的實現,或者一個JavaScript對象。

從中可以看到,第一個參數和第二個參數都是可以省略的,第三個參數則是模塊的具體實現本身。後面將介紹在不同的應用場景下,他們會使用不同的參數組合。

例子:

下面代碼定義了一個alpha模塊,並且依賴於內置的require,exports模塊,以及外部的beta模塊。可以看到,第三個參數是回調函數,可以直接使用依賴的模塊,他們按依賴聲明順序作爲參數提供給回調函數。

這裏的require函數讓你能夠隨時去依賴一個模塊,即取得模塊的引用,從而即使模塊沒有作爲參數定義,也能夠被使用;exports是定義的alpha 模塊的實體,在其上定義的任何屬性和方法也就是alpha模塊的屬性和方法。通過exports.verb = …就是爲alpha模塊定義了一個verb方法。例子中是簡單調用了模塊beta的verb方法。

define(“alpha”, [“require”, “exports”, “beta”], function (require, exports, beta) {

exports.verb = function() {

return beta.verb();

//或者:

return require(“beta”).verb();

}

})

**define 方法允許你省略第一個參數,這樣就定義了一個匿名模塊,這時候模塊文件的文件名就是模塊標識。**如果這個模塊文件放在a.js中,那麼a就是模塊名。可以在依賴項中用"a"來依賴於這個匿名模塊。這帶來一個好處,就是模塊是高度可重用的。你拿來一個匿名模塊,隨便放在一個位置就可以使用它,模塊名就是它的文件路徑。這也很好的符合了DRY(Don’t Repeat Yourself)原則。

下面的代碼就定義了一個依賴於alpha模塊的匿名模塊:

define([“alpha”], function (alpha) {

return {

verb: function(){

return alpha.verb() + 2;

}

};

});

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章