Obsolete since JavaScript 1.8.5
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

JSExtendedClass is an extended version of JSClass with additional hooks.

A C/C++ program can use a JSExtendedClass with the JS_InitClass and JS_NewObject APIs to create objects that have custom methods and properties implemented in C/C++.

Syntax

struct JSExtendedClass {
   JSClass             base;
   JSEqualityOp        equality;
   JSObjectOp          outerObject;
   JSObjectOp          innerObject;
   JSIteratorOp        iteratorObject;// Added in SpiderMonkey 1.8
   JSObjectOp          wrappedObject; // Added in SpiderMonkey 1.8

   ...and additional reserved fields.
};
Name Type Description
base JSClass The basic class information and callbacks for this class. This contains some required fields.
equality JSEqualityOp Optional. Overrides the JavaScript == and != operators.
outerObject JSObjectOp Optional. Return the current outer object. This is used to implement split objects.
innerObject JSObjectOp Optional. Return the current inner object. This is used to implement split objects.
iteratorObject JSIteratorOp Added in SpiderMonkey 1.8 Optional. Creates and returns a new iterator.
wrappedObject JSObjectOp Added in SpiderMonkey 1.8 Optional. If non-null, an object of this class may serve as a wrapper for another object. Wrappers sometimes transparently behave like the object they wrap. For example, an object and its wrappers are all equal under ===.

Description

To implement a custom class that uses any of the JSExtendedClass callbacks:

See Also