A POJO is a concept borrowed (and clarified) from Java - POJO, whilst originally representing "Plain Old Java Object" here has J standing for "Javascript", and, unlike in the Java world, is given a very specific operational meaning. An object is a POJO, and hence suitable to be a Model, if when passed to the framework utility function fluid.copy
is "successfully duplicated" – that is, the developer considers the copy can faithfully stand in for the original.
More details are at Framework Concepts#POJO.
Here's an idea for another way to frame this concept:
A model object is any type of JavaScript object that represents the data in your application. Infusion doesn't impose any specific contracts on what types of objects can be a model, but all model objects must be successfully copyable using the fluid.copy()
function. Ordinarily, this will probably a JSON-compatible object, but the framework doesn't limit you to this.
Java developers may recognize the similarity to the concept of POJOs (Plain Old JavaScript Objects).
fluid.copy()
uses jQuery's .extend()
method to make a deep copy of any object.