这个代码库中定义的函数'define'在哪里?

时间:2013-07-27 04:59:54

标签: javascript amd

我正在浏览file upload plugin的javascript代码。

有一个piece of code检查define是否是一个函数并声明了一些依赖项我猜

(function (factory) {
    'use strict';
    if (typeof define === 'function' && define.amd) {
        // Register as an anonymous AMD module:
        define([
            'jquery',
            'jquery.ui.widget'
        ], factory);
    } else {
        // Browser globals:
        factory(window.jQuery);
    }
}

代码上方的注释表明define是全局的。但我在使用angularjs构建的应用程序中没有它。

我在codebase中搜索了define的声明。 BUt找不到任何东西。我用Google搜索了AMD,我可以再次看到定义为used here

我的问题是'定义'在哪里定义?

1 个答案:

答案 0 :(得分:2)

define是一个函数,其功能由the Asynchronous Module Definition spec­if­i­cat­ion定义。 AMD只是一个规范;有多个实现,其中RequireJS是一个。如果需要,您可以看到RequireJS如何实现它,但请记住,RequireJS的define不是唯一的define