Our starting point for making a JS class model is the following OO class model:
This model contains, in addition to the single-valued reference
property Book::publisher representing the
unidirectional many-to-one association Book-has-Publisher,
the multi-valued reference property
Book::authors representing the unidirectional
many-to-many association Books-have-Authors.
For deriving a JS class model from the OO class model we have to
follow the same steps as in Section 2 and, in addition, we have to take care of
multi-valued reference properties, such as
Book::authors, for which we
create a class-level check operation, such as
checkAuthor, which is responsible for checking the
corresponding referential integrity
constraint for the references to be added to the property's
collection;
create an add operation, such
as addAuthor, for adding a reference to the
collection;
create a remove operation, such
as removeAuthor, for removing a reference from the
collection.
This leads to the following JS class model: