UNPKG

dojo

Version:

Dojo core is a powerful, lightweight library that makes common tasks quicker and easier. Animate elements, manipulate the DOM, and query with easy CSS syntax, all without sacrificing performance.

37 lines (35 loc) 1.07 kB
define(["./aspect", "./on"], function(aspect, on){ // module: // dojo/Evented "use strict"; var after = aspect.after; function Evented(){ // summary: // A class that can be used as a mixin or base class, // to add on() and emit() methods to a class // for listening for events and emitting events: // example: // | define(["dojo/Evented", "dojo/_base/declare", "dojo/Stateful" // | ], function(Evented, declare, Stateful){ // | var EventedStateful = declare([Evented, Stateful], {...}); // | var instance = new EventedStateful(); // | instance.on("open", function(event){ // | ... do something with event // | }); // | // | instance.emit("open", {name:"some event", ...}); } Evented.prototype = { on: function(type, listener){ return on.parse(this, type, listener, function(target, type){ return after(target, 'on' + type, listener, true); }); }, emit: function(type, event){ var args = [this]; args.push.apply(args, arguments); return on.emit.apply(on, args); } }; return Evented; });