Class: BaseObject

ol/Object~BaseObject


import BaseObject from 'ol/Object.js';

抽象基类;通常只用于创建子类,不在应用中直接实例化。大多数非简单类都继承自此类。

这扩展了 Observable,增加了可观察属性,其中每个属性以及整个对象都是可观察的。

继承自此类的类具有预定义的属性,您可以添加自己的属性。预定义的属性在本文档中列为“可观察属性”,并有自己的访问器方法;例如, Map 有一个 target 属性,可通过 getTarget() 访问,通过 setTarget() 修改。但并非所有属性都可设置。还有通用访问器 get()set()。例如,get('target') 等同于 getTarget()

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

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

请注意,可观察属性与标准 JS 属性是分开的。 例如,您可以通过 map.title='New title'map.set('title', 'Another title') 给地图对象设置标题。前者将是一个 hasOwnProperty;后者将出现在 getProperties() 中。只有后者是可观察的。

可以使用 unset 方法删除属性。例如 object.unset('foo')。

new BaseObject(values)

Name Type Description
values NoInfer.<Properties> | undefined

键值对对象。

触发事件:

Subclasses

Extends

Methods

增加修订计数器并分发 'change' 事件。

dispatchEvent(event){boolean | undefined} inherited

分发事件并调用所有监听此类型事件的监听器。事件参数可以是一个字符串或一个 具有 type 属性的对象。

Name Type Description
event BaseEvent | string

事件对象。

返回值:
如果有人在事件对象上调用了 preventDefault 或任何监听器返回 false,则返回 false

get(key){*}

获取一个值。

Name Type Description
key string

键名。

返回值:
值。

getKeys(){Array.<string>}

获取对象属性名列表。

返回值:
属性名列表。

getProperties(){NoInfer.<Properties>}

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

返回值:
对象。

getRevision(){number} inherited

获取此对象的版本号。 每次对象被修改时,其版本号将递增。

返回值:
版本号。

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

监听特定类型的事件。

Name Type Description
type string | Array.<string>

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

listener function

监听器函数。

返回值:
监听器的唯一键。如果第一个参数是事件类型数组,则返回键的数组。

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

仅监听一次特定类型的事件。

Name Type Description
type string | Array.<string>

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

listener function

监听器函数。

返回值:
监听器的唯一键。如果第一个参数是事件类型数组,则返回键的数组。

set(key, value, silent)

设置一个值。

Name Type Description
key string

键名。

value *

值。

silent boolean | undefined

更新但不触发事件。

setProperties(values, silent)

设置一组键值对。 注意,这会更改任何现有属性并添加新属性(不会移除任何现有属性)。

Name Type Description
values Partial.<NoInfer.<Properties>>

值。

silent boolean | undefined

更新但不触发事件。

un(type, listener) inherited

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

Name Type Description
type string | Array.<string>

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

listener function

监听器函数。

unset(key, silent)

取消设置一个属性。

Name Type Description
key string

键名。

silent boolean | undefined

取消设置但不触发事件。