subject-object
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

SubjectObject

It's a simple Javascript class that implement the Subject part in a Observer-Subject relationship.

How to use

In order to create a Observable object (subject) you have to extend SubjectObject class, adding observable properties using 'createProperty' method

// Observable object
var Foo = function() {
    SubjectObject.call(this);
 
    this.createProperty('a');
    this.createProperty('b');
 
    this.a = "...";
    this.b = 12;
}
 
Foo.prototype = Object.create(SubjectObject.prototype);
Foo.prototype.constructor = Foo;

Then you can add a listener (Observer) using 'addObserver' method:

// Observer
var Bar = function() {
 
}
 
Bar.prototype.listen = function(object, changes) {
    var property = changes.property;
 
    console.log('Property "', property, '" has changed');
    console.log('New value: "', object[property], '"');
    console.log('Old value: "', changes.oldValue, '"');
}
 
// Link
var f = new Foo();
var b = new Bar();
 
f.addObserver(b.listen);

When a property of 'f' object is changed

f.a = 'Hello world';

all listeners are notified (called)

Property " a " has changed
New value: " Hello world "
Old value: " ... "

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i subject-object

      Weekly Downloads

      2

      Version

      1.0.2

      License

      MIT

      Unpacked Size

      6.56 kB

      Total Files

      7

      Last publish

      Collaborators

      • mramonlopez