AMD 规范里面的 define 函数何处来?

2017-08-17 18:36:14 +08:00
 Jakesoft

今天突然心血来潮看 jQuery 的源码,发现里面有 define 函数,搜索了一下,应该就是 node,或者 require.js 提供的定义模块的方法。

我跟着 http://requirejs.org/docs/api.html#define 这个例子定义一个模块,然后想执行,发现报错 “ define is not defined ”, 无论是浏览器还是 node 环境,都提示这个函数不存在

特此求 dalao 指教,或提供相关文档资料供,赶紧不尽!

PS: jQuery 的源码如何才能跑起来,如何才能通过源码得到一份 jquery.min.js

PS:非伸手党,勿喷

2713 次点击
所在节点    JavaScript
4 条回复
tinytin
2017-08-17 19:21:12 +08:00
define 肯定是个全局变量 jquery 直接 npm run build (需要你提前全局安装 grunt)
Jakesoft
2017-08-17 19:33:43 +08:00
@tinytin 我没理解错的话,这个 define 函数其实是用户定义的函数,而不是 js 自带的函数,对吧?

那就是有可能是 grunt 按照 AMD 规范定义并实现的。

如果是这样的话,那真是太感谢了(一直以为是哪个 js 版本的预定义函数…)
Jakesoft
2017-08-17 19:35:30 +08:00
@jakesoft 或者是 requireJS 定义的,而我的代码没有引入 requireJS
harttle
2017-08-17 21:34:04 +08:00
jQuery 检测了是否存在 define,有的话就认为当前环境有 AMD 就把自己声明为 AMD 模块,否则 jQuery 就把自己挂在全局变量上。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/383764

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX