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 指向构造函数的实例

目前还有很多需要摸索的地方,在以后的工作中,慢慢记录。

posted @ 2019-05-07 19:53 昜木辰deブログ 阅读(...) 评论(...) 编辑 收藏