类:基础对象

ol/Object~基础对象


import BaseObject from 'ol/Object.js';

抽象基类;通常仅用于创建子类,而不在应用程序中实例化。大多数非平凡类都继承自此类。

这通过可观察属性扩展了 Observable,其中每个属性以及整个对象均为可观察的。

继承自该类的类拥有预定义属性,您还可以添加自定义属性。这些预定义属性在本文档中列为“可观察属性”,并配备独立的访问器;例如,Map 拥有 target 属性,可通过 getTarget() 访问,并通过 setTarget() 修改。但并非所有属性都可设置。此外,还有通用访问器 get()set()。例如,get('target') 等价于 getTarget()

set 访问器将触发一个更改事件,您可以通过注册监听器来监控该事件。例如,View 拥有 center 属性,因此每当 center 属性的值发生变化时,view.on('change:center', function(evt) {...}); 就会调用该函数。在函数内部,evt.target 代表视图,因此 evt.target.getCenter() 将返回新的中心。

您可以使用 object.set('prop', 'value') 添加自定义的可观察属性,并通过 object.get('prop') 检索该属性。您可以使用 object.on('change:prop', listener) 监听该属性值的变化。您可以使用 getProperties 获取所有属性的列表。

请注意,可观察属性与标准JavaScript属性是分离的。例如,您可以使用map.title='New title'map.set('title', 'Another title')为地图对象设置标题。前者将作为hasOwnProperty;后者将显示在getProperties()中。仅后者是可观察的。

可通过 unset 方法删除属性。例如:object.unset('foo').

new BaseObject(values)

Name Type 描述
values Object.<string, *> | undefined

具有键值对的对象。

触发事件:

子类

继承

方法

递增修订计数器并触发'change'事件。

dispatchEvent(event){boolean | undefined} inherited

分发事件并调用所有侦听该类型事件的侦听器。事件参数可以是字符串,也可以是具有 type 属性的对象。

Name Type 描述
event BaseEvent | string

事件对象。

返回:
false 如果对事件对象调用了preventDefault,或者任何侦听器返回了false。

get(key){*}

获取一个值。

Name Type 描述
key string

键名。

返回:
值。

getKeys(){Array.<string>}

获取对象属性名列表。

返回:
属性名称列表。

getProperties(){Object.<string, *>}

获取包含所有属性名称和值的对象。

返回:
对象。

getRevision(){number} inherited

获取该对象的版本号。每次修改对象时,其版本号都会递增。

返回:
修订。

on(type, listener){EventsKey | Array<EventsKey>} inherited

监听特定类型的事件。

Name Type 描述
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数。

返回:
监听器的唯一键。若以事件类型数组作为第一个参数调用,则返回将是键的数组。

once(type, listener){EventsKey | Array<EventsKey>} inherited

对特定类型的事件执行一次性监听。

Name Type 描述
type string | Array.<string>

事件类型或事件类型数组

listener function

监听器函数。

返回:
监听器的唯一键。如果以事件类型数组作为第一个参数调用,则返回将是键的数组。

set(key, value, silent)

设置值。

Name Type 描述
key string

键名。

value *

值。

silent boolean | undefined

更新时不触发事件。

setProperties(values, silent)

设置一个键值对集合。请注意,此操作会修改现有属性并添加新属性,但不会删除任何现有属性。

Name Type 描述
values Object.<string, *>

价值观。

silent boolean | undefined

更新时不触发事件。

un(type, listener) inherited

取消监听特定类型的事件。

Name Type 描述
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数

unset(key, silent)

清除属性。

Name Type 描述
key string

键名。

silent boolean | undefined

在不触发事件的情况下取消设置。