This article covers features introduced in SpiderMonkey 45

Determine whether a JavaScript object has a specified own property.


JS_HasOwnProperty(JSContext* cx, HandleObject obj, const char* name,
                  bool* foundp)

JS_HasOwnPropertyById(JSContext* cx, HandleObject obj, HandleId id,
                      bool* foundp)
Name Type Description
cx JSContext * A context. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext.
obj JS::HandleObject Object to search on for the property.
name or id const char * or JS::HandleId Name of the property to look up.
foundp bool * Non-null pointer to a variable of type bool. On success, JS_HasOwnProperty stores true in this variable if obj has an own property with the given name, and false if not.


JS_HasOwnProperty searches an object, obj, for an own property with the specified name. It behaves like the JavaScript expression Object.hasOwnProperty(obj, name). JS_HasOwnPropertyById is the same but takes a JS::HandleId for the property name.

If the property exists, this function sets *foundp to true and returns true.

If the object obj has no such property, the function sets *foundp to false and returns true (to indicate that no error occurred).

If an error occurs during the search, the function returns false, and the value of *foundp is undefined.

See Also