Merge pull request #12414 from ahocevar/change-event-type
Replace getChangeEventType() with add/removeChangeListener methods
This commit is contained in:
@@ -149,12 +149,28 @@ class BaseObject extends Observable {
|
||||
*/
|
||||
notify(key, oldValue) {
|
||||
let eventType;
|
||||
eventType = getChangeEventType(key);
|
||||
eventType = `change:${key}`;
|
||||
this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));
|
||||
eventType = ObjectEventType.PROPERTYCHANGE;
|
||||
this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} key Key name.
|
||||
* @param {import("./events.js").Listener} listener Listener.
|
||||
*/
|
||||
addChangeListener(key, listener) {
|
||||
this.addEventListener(`change:${key}`, listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} key Key name.
|
||||
* @param {import("./events.js").Listener} listener Listener.
|
||||
*/
|
||||
removeChangeListener(key, listener) {
|
||||
this.removeEventListener(`change:${key}`, listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a value.
|
||||
* @param {string} key Key name.
|
||||
@@ -220,19 +236,4 @@ class BaseObject extends Observable {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @type {Object<string, string>}
|
||||
*/
|
||||
const changeEventTypeCache = {};
|
||||
|
||||
/**
|
||||
* @param {string} key Key name.
|
||||
* @return {string} Change name.
|
||||
*/
|
||||
export function getChangeEventType(key) {
|
||||
return changeEventTypeCache.hasOwnProperty(key)
|
||||
? changeEventTypeCache[key]
|
||||
: (changeEventTypeCache[key] = 'change:' + key);
|
||||
}
|
||||
|
||||
export default BaseObject;
|
||||
|
||||
Reference in New Issue
Block a user