Dojo.declare使用方法详解
ArcGIS API for JavaScript是基于dojo开发的一套API,在实际生产中,我们需要再根据自己的需求实现自定义的功能,最后抽象成接口给前端调用。
我们使用dojo的declare来实现。
declare有很多种写法,如果你要定义一个自己的模块时,可使用define。define()
函数提供了返回值并延迟加载依赖项的可能性,所以此命令适用于定义模块。创建模块时,将返回一个对象。
这也意味着 require()
函数的主要用途是导入模块,而该 define()
函数用于定义您自己的自定义模块及其所需的依赖项。
require的包是"dojo/_base/declare" 依赖项是declare
范本:
define([ "dojo/_base/declare", "esri/layers/GraphicsLayer" ], function ( declare, GraphicsLayer ) { return declare([GraphicsLayer], { constructor: function(options) { }); });
或
1 require([ 2 "dojo/_base/declare" 3 ], 4 function ( 5 declare, 6 7 ) { 8 return declare( 9 /*className: 是要要申明的类的类名,也就是创建的构造函数的名称。*/ 10 "className", 11 /*superclass:所要继承的父类,此参数可为 null,表示没有父类,或者为一个父类,或为多个父类的数组,*/ 12 superclass, 13 /*你自己定义的一些放大什么的*/ 14 ( props ) 15 /*props:散列体,由名、值(key, value)对组成,这个散列体将被添加到定义的类的原型对象中,也即为定义的类被其所有实例共享的属性及方法。
16 其中,key :constructor 为保留字,此函数用来初始化新对象。*/ 17 ); 18 } 19 );
其中 props的写法如下:
1 ShowRemoteMap: function (map_,_RemoteUrl,_FeatureLayerURL) { 2 /*你自己定义的一些方法逻辑*/ 3 }, 4 5 HideRemoteMap:function(map_,_LFQPUrl,_FeatureLayerURL){ 6 /*你自己定义的一些方法逻辑*/ 7 }
dojo的declare解析
https://www.ibm.com/developerworks/cn/web/1203_xiejj_dojodeclare/
这次学习写接口的过程中,认识到JavaScript中的this指向的重要性,附上学习地址
https://blog.csdn.net/qq_33988065/article/details/68957806
概括下来大概是:(1)方法调用中谁调用 ,this 就指向谁
(2)在构造函数或者构造函数原型对象中 this 指向构造函数的实例
目前还有很多需要摸索的地方,在以后的工作中,慢慢记录。