由于dojo框架的模块化思想 所以dojo提供了很方便的自定义模块的方法
自定义模块:define 关键字
例子
define(["dojo/_base/declare"],function (declare) { var myfunction=function () { console.log('自定义模块') } return { myfunction:myfunction, attr:'5555' }; })
define函数的 参数 1 各种依赖模块
参数 2 模块本身逻辑
完成: return 某个值(属性 函数 或者对象 如果没有return 那加载不出来什么)
引用自定义模块
require([ "esri/Map", "esri/views/MapView", "dojodefine/mydefine.js", "dojo/domReady!gis/4.3" ], function(Map, MapView,mydefine){ //do something })
我将新模块定义在dojodefine文件夹下的mydefine.js文件下
自定义类:declare关键字
类是在模块里定义的 要明确两者关系 类的定义要用到“dojo/_base/declare" 模块
1 定义模块
2 引入declare
3 使用declare函数定义类
4 返回类
5使用类
/** *作者 15879 - LRH *创建时间 2018 2018/4/22 10:48 **/ define(["dojo/_base/declare"],function (declare) { /** * @author 15879 * @create 2018/4/22 10:52 * 参数1 继承的父类 * 参数2 对象散列值 定义类的属性方法 构造函数 **/ var myclass=declare(null,{ id:'fd', attr1:'属性', constructor:function(name){ this.id=name; }, showattr:function () { //逻辑操作 return { id:this.id, attr:this.attr1 } } }) return myclass; })引用后需进行new 操作进行实例化 即可使用对象