Dojo的define接口

http://blog.csdn.net/lovecarpenter/article/details/53979717

第三种用法用的最多。

此接口用于定义模块:

define([],function(){});

定义模块的形式:

1.如果只有键值对,没有任何的依赖项:

define({
    color: "black",
    size: "unisize"
});

2.如果模块没有任何依赖,但是需要一个做准备活动的函数

define(function () {
    //在这里可以一些准备工作
    return {
        color: "black",
        size: "unisize"
    }
    //return 是模块的返回值
});

3.如果模块存在依赖,假设模块依赖需要用到dojo/dom模块

//该模块提供了一个方法,可以改变dom元素的innerHTML
define(["dojo/dom"], function(dom) {
    return {
        change: function(id,text) {
            dom.byId(id).innerHTML=text
        }
    }
});
define(["dojo/dom-construct", "dojo/dom", "dojo/request", "dojo/topic"]
, function (DomConstruct, dom, request, topic) {
    return {
        loadModule: function (content, container, callBack, params) {
            
        },
        unLoadModule: function (funcName) {
            
        },
        loadModuleDojo: function (content, container, callBack, params) {
            
        }
    }
});

假如该模块为ModuleManager,如果需要调用其LoadModule方法:

require(['ModuleManager'],function(ModuleManager){
     ModuleManager.loadModule('layerMenu/layerMenu.html', 'menus_div', function () {
    });
});

4.将模块定义为函数

 define(function() {
    return function(text) {
    //弹出一下text文本
    alert(text);
    }
});
原文地址:https://www.cnblogs.com/qicao/p/7593067.html