モジュラー関連
2195 ワード
テーマ1:なぜモジュール化を使うのか?
モジュール化の主な目的:ネーミング競合と依存管理の解決
また,コードの可読性,コードのデカップリング,多重性の向上も可能である.
テーマ2:CMD、AMD、CommonJS仕様はそれぞれ何を指しますか?どのようなアプリケーションがありますか
AMD,Asynchronous Module Definition,非同期モジュール定義.AMD仕様は、モジュールと依存が非同期でロードできるメカニズムを指定します.これは、ブラウザ側の非同期ロードに特に適しています.構文:
AMDを実装するライブラリ:'RequireJS','curl','Dojo'
CommonJSはサーバ側モジュールの仕様で、Node.jsはこの仕様を採用しています.
requireとexports
requireは、1つの自由変数であり、1つの関数であり、1つのモジュール識別子を受信し、そのモジュールが出力したAPI exportsを返し、1つの自由変数であり、1つの関数であり、モジュール出力の唯一の表現方法であり、各種出力(API)をexportsの例に追加する.
CMD、Common Module Definitionも、モジュール化された考え方です.モジュールはファイル構文です.
モジュール化の主な目的:ネーミング競合と依存管理の解決
また,コードの可読性,コードのデカップリング,多重性の向上も可能である.
テーマ2:CMD、AMD、CommonJS仕様はそれぞれ何を指しますか?どのようなアプリケーションがありますか
AMD,Asynchronous Module Definition,非同期モジュール定義.AMD仕様は、モジュールと依存が非同期でロードできるメカニズムを指定します.これは、ブラウザ側の非同期ロードに特に適しています.構文:
define(id?,dependencies?,factory)
id:定義中のモジュールの名前、オプションパラメータ、指定されていない場合は、デフォルトではモジュールローダが要求する指定したスクリプトの名前です.denpendencies:依存パラメータ、オプション.factory:実行する必要がある関数またはオブジェクトは、必須です.例:define('modal',['jQuery','dialog'],function($,Dialog){
$('.modal').show()
Dialog.open()
})
, modal, jQuery Dialog , 'jQuery','dialog'。
AMDを実装するライブラリ:'RequireJS','curl','Dojo'
CommonJSはサーバ側モジュールの仕様で、Node.jsはこの仕様を採用しています.
requireとexports
requireは、1つの自由変数であり、1つの関数であり、1つのモジュール識別子を受信し、そのモジュールが出力したAPI exportsを返し、1つの自由変数であり、1つの関数であり、モジュール出力の唯一の表現方法であり、各種出力(API)をexportsの例に追加する.
//math.js
exports.add = function(){
var sum = 0,i = 0, args = arguments, l = args.length
while(i < l){
sum += args[i++]
}
return sum
} // add exports
//increment.js
var add = require('math').add // require math , , add
exports.increment = function(val){
return add(val,1)
} // increment exports
//program.js
vat inc = require('increment').increment
// require increment , ,increnment require math , add,math.js increment.js 。
var a = 1
inc(a) // 2
CMD、Common Module Definitionも、モジュール化された考え方です.モジュールはファイル構文です.
define(factory)
例です.//math.js
define(function(require,exports,module){
exports.add = function(){
var sum = 0,i = 0, args = arguments, l = args.length
while(i < l){
sum += args[i++]
}
return sum
}
})
//increment.js
define(function(require,exports,module){
var add = require('math').add
exports.increment = function(val){
return add(val,1)
}
})
//program.js
define(function(require,exports,module){
vat inc = require('increment').increment
var a = 1
inc(a) // 2
module.id == "program"
})