爲什麼在requirejs模塊中傳遞對jQuery的引用是可選的?例如,考慮使用不同版本的拳頭線爲什麼在require/AMD模塊中傳遞jquery引用是可選的?
define(['jquery'],function ($) {
var initialize=function(){
console.log($.fn.jquery);
};
return {
initialize: initialize
};
});
對於這條線,你會想到以下代碼的console.log工作
define(['jquery'],function ($) { ...
「jQuery的」被載入並傳遞到代碼以$作爲參考
對於這條線,你會想到下面的的console.log失敗
define(function() { ...
但是,爲什麼這條線的工作 - 即爲什麼執行console.log知道什麼是$
define(['jquery'],function() {
現在,我想你會說...因爲你正在使用的全球參考的$查詢,但是不是有點...不安全?如果$是全球可用,爲什麼你還需要[「jQuery的」]依賴你在做什麼還,如果這樣的事情...
define(['jquery','classA','classB] ...
如果繼續...
define(['jquery','classA','classB],function(ClassA,ClassB){
那麼你不需要包含$引用,否則它會認爲ClassA引用['jquery']依賴關係?
那麼,爲什麼它是可選的,更重要的是,這是最佳實踐?
// EDIT
抱歉,意味着添加配置細節
require.config({
paths: {
"jquery": "//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min"
}
});