02-入门知识点-Accessor所有类的基类

如果你非常细心的阅读了《02-入门基础知识点-对象的属性》和《02-入门知识点-异步请求操作Promise》两个章节,你会发现不管是对象属性的获取、设置,还是对象属性值的变化监测,基本在API的所有对象上都有提供了这两个功能。其实这是因为Accessor这个类的缘故。
这里写图片描述
Accessor是一个抽象类,它提供了访问对象属性以及监视属性变化的机制,API中大部分的类都继承了Accessor。
这里写图片描述
Accessor的每个子类都定义了可直接访问的属性或使用get()和set()方法,以及watch()方法来观察属性的变化。所以如果你要获取视图的中心点就有了两种写法:

var getCenter1=view.center; //写法1
var getCenter2=view.get("center"); //写法2

同样设置视图中心点坐标也有两种写法:
view.center=[113.293701, 23.096313]; //写法1
view.set(“center”,[113.293701, 23.096313]); //写法2
监听视图中心点坐标变化:

view.watch(“center”,function(newVal, oldVal, property, object){
    console.log(
            “新的属性值: ”, newVal, // 新center
            “旧的属性值: ”, oldVal,  // 旧center
            “监听的属性: ”, property, // “center”
            “被监听的对象: ", object //view
    );
});

从这个Accessor基类的设计来看,可以作为后续大家做地图开发时的一个参考:共有的属性和操作都可以抽象成一个共同的基类。而这也是Esri在API设计上的一贯作风,以面向对象思想设计API,所以你看懂一套Esri的API,再去看其他的API时都发现其实都是类似。

猜你喜欢

转载自blog.csdn.net/peckerzeng/article/details/79287501