为什么在 requirejs 模块中传递对 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'] 依赖项?
那么,为什么它是可选的,更重要的是,这是最佳实践?
// 编辑
抱歉,是要添加配置详细信息
需要.config({
paths: {
"jquery": "//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min"
}
});