Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Access the private data field of an object.

Syntax

void *
JS_GetPrivate(JSObject *obj);
Name Type Description
obj JSObject * An object whose JSClass has the JSCLASS_HAS_PRIVATE flag.

Description

JS_GetPrivate accesses an object's private data field. obj must be an instance of a class that has the JSCLASS_HAS_PRIVATE flag.

New objects' private data fields are initially NULL.

If obj is a Function object, as reported by JS_ObjectIsFunction, the private data is a pointer to a JSFunction.  (But consider using JS_ValueToFunction instead to access it.)

Warning: It is dangerous to call JS_GetPrivate on a JSObject * unless the object's JSClass is known. If the object is not of the expected JSClass, the result of JS_GetPrivate would probably be NULL or a pointer to some unexpected type of data. Casting that pointer to the desired type and using it could then cause a crash or worse.

Getters, setters, and methods of custom classes should use JS_GetInstancePrivate instead to avoid this danger. However, it is safe to use JS_GetPrivate in a finalizer.

See Also

Document Tags and Contributors

 Contributors to this page: arai, Sheppy, Dmandelin, Jorend, Wesgarland, Nickolay, Sayrer, Dria, Tservo
 Last updated by: arai,