System supporting object-oriented constructs in ECMAScript
OwnerScott Shattuck, William Edney +1inventors
InventorsScott Shattuck, William Edney, James Bowery
Life of this patent
Estimating the term…
Loading patent…
OwnerScott Shattuck, William Edney +1inventors
InventorsScott Shattuck, William Edney, James Bowery
Estimating the term…
An internally consistent system implementing object-oriented programming constructs in ECMAScript is described. First, a function, rather than the ECMAScript new keyword, is used to initiate new instance creation. The instance creation function is assigned to a non-Function instance rather than an instance of Function as required for use of new. Instances with attached instance creation functions serve as “type proxy” objects and replace the Function instances normally used as types. Since the type proxies and prototype chains created and maintained by the invention are instances of normal objects, rather than instances of Function as required by standard ECMAScript, this approach allows native ECMAScript lookup semantics to be leveraged while supporting inheritance of both state and behavior for instances and types to any level desired. A set of functions known herein as property-definition functions are used by type proxies to assign properties as global, local, instance, or type properties rather than the standard ECMAScript approach of direct assignment. Where constraints exist such as “read-only”, “private”, etc. the physical storage of the property may be located away from the target object in a separate storage structure. Method definitions further place a “backstop” method on Object.prototype. Invocation of the backstop triggers a callback to the non-implementing receiver followed by a scan of guardians for multiple inheritance, followed by dynamic type conversion and method creation. The result is a highly enhanced system of polymorphic behavior.
A method for implementing type inheritance and instance inheritance in JavaScript, comprising the steps of:
A method for defining an object method in JavaScript, comprising the steps of:
A method for creating bound functions in JavaScript, comprising the steps of:
A method for handing unresolved methods in JavaScript, comprising the steps of:
A method for delegating functionality in JavaScript, comprising the steps of:
A method for inferring operations in an Object-Oriented language, comprising the steps of:
Dependencies are inferred from the claim text.