RequireJS的几种define定义方式

4998人阅读 评论(0) 收藏 举报
分类:
定义简单的键值对
define({
    color: "black",
    size: "unisize"
});

定义不带依赖的函数
define(function () {
    //Do setup work here


    return {
        color: "black",
        size: "unisize"
    }
});

存在依赖的函数式定义
如果模块存在依赖:则第一个参数是依赖的名称数组;第二个参数是函数,在模块的所有依赖加载完毕后,该函数会被调用来定义该模块,因此该模块应该返回一个定义了本模块的object。依赖关系会以参数的形式注入到该函数上,参数列表与依赖名称列表一一对应。
define(["./cart", "./inventory"], function(cart, inventory) {
        //return an object to define the "my/shirt" module.
        return {
            color: "blue",
            size: "large",
            addToCart: function() {
                inventory.decrement(this);
                cart.add(this);
            }
        }
    }
);

将模块定义为一个函数
对模块的返回值类型并没有强制为一定是个object,任何函数的返回值都是允许的。此处是一个返回了函数的模块定义:
define(["my/cart", "my/inventory"],
    function(cart, inventory) {
        //return a function to define "foo/title".
        //It gets or sets the window title.
        return function(title) {
            return title ? (window.title = title) :
                   inventory.storeName + ' ' + cart.name;
        }
    }
);

定义一个命名模块
你可能会看到一些define()中包含了一个模块名称作为首个参数:
    define("foo/title",
        ["my/cart", "my/inventory"],
        function(cart, inventory) {
            //Define foo/title object in here.
       }
    );


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:864590次
    • 积分:10526
    • 等级:
    • 排名:第1624名
    • 原创:273篇
    • 转载:69篇
    • 译文:2篇
    • 评论:157条
    博客专栏
    最新评论