Object-Oriented Programming System for JavaScript Class Inheritance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

JavaScript, a prototypal programming language, lacks features like traditional object-oriented class inheritance, making it difficult to implement class hierarchies and static methods, limiting its functionality compared to other programming languages.

Innovation Solution

An object-oriented programming system and library that generates classes and class members from member definitions and data, including a class definition function, constructor, properties, events, and methods, enabling the creation of prototypal objects and supporting features like single inheritance and aspect-oriented programming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If JavaScript uses prototype-based object inheritance, then the language maintains simplicity and flexibility, but it lacks traditional object-oriented class inheritance features

Engineering Contradiction:
Improveobject-oriented class inheritanceVSAvoidlanguage structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a class library as an intermediary layer between prototype-based objects and traditional class-based OOP concepts. This library provides factory functions and class descriptors that enable class-like inheritance patterns while maintaining compatibility with JavaScript's prototype system, thus adding OOP versatility without fundamentally changing the language structure

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments object-oriented functionality into separate, reusable class library components including factory functions, class descriptors, and inheritance utilities. This modular approach allows developers to selectively apply class-based patterns where needed while preserving the simplicity of prototype-based programming elsewhere in the codebase

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If JavaScript lacks traditional class inheritance, then the language remains simple, but it cannot implement class hierarchies and static methods

Engineering Contradiction:
Improveclass hierarchies and static methodsVSAvoidlanguage functionality
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent implements class hierarchies by creating template patterns that copy and extend object structures. Class descriptors serve as blueprints that define properties and methods, which are then copied and instantiated through factory functions, enabling hierarchical relationships similar to traditional OOP without requiring native class support

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The class library provides universal factory functions that can create objects with various inheritance patterns, static method equivalents, and hierarchical relationships. These multi-functional utilities enable class-like behavior across different scenarios while maintaining a consistent, simplified interface for the developer

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Adaptability or versatility

If JavaScript uses prototype-based objects, then the language is flexible, but static analysis tools have limited effectiveness

Engineering Contradiction:
Improvestatic analysis compatibilityVSAvoidanalysis capability
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by establishing class descriptors and type definitions before object instantiation. These pre-defined class structures provide static type information that analysis tools can process, enabling static analysis capabilities on prototype-based code through advance declaration of object schemas and inheritance relationships

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10949220B2Object-oriented programming system and library
Publication Date: 2021.03.16 HOME BOX OFFICE INC
  • US10949220B2 patent drawing
  • US10949220B2 patent drawing
  • US10949220B2 patent drawing

AI summary

The described technology is directed towards an object-oriented programming (OOP) system and library that maps conventional object-oriented concepts such as class hierarchies, interfaces, and static methods and properties onto a prototypal object system such as JavaScript®. Various functions of the OOP system are called to create a class-like structure that is instantiated into an object instance upon request. The OOP system allows for use of a wrapper pattern to wrap selected objects with added functionality such as validation and tracing, and to provide enhanced functionality with respect to properties, such as to call a function associated with a property when the property's value changes, and/or to lazily generate property values only when accessed.