Determine whether a JavaScript object has a specified property.
Syntax
bool JS_HasProperty(JSContext *cx, JS::HandleObject obj, const char *name, bool *foundp); bool JS_HasUCProperty(JSContext *cx, JS::HandleObject obj, const char16_t *name, size_t namelen, bool *vp); bool JS_HasPropertyById(JSContext *cx, JS::HandleObject obj, JS::HandleId id, bool *foundp); // Added in SpiderMonkey 1.8.1
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 const char16_t or |
Name of the property to look up. |
namelen |
size_t |
(only in JS_HasUCProperty ) The length of name in characters, or -1 to indicate that name is null-terminated. |
foundp |
bool * |
Non-null pointer to a variable of type bool . On success, JS_HasProperty stores true in this variable if obj has a property with the given name , and false if not. |
Description
JS_HasProperty
searches an object, obj
, and its prototype chain, for a property with the specified name
. It behaves like the JavaScript expression name in obj
. JS_HasUCProperty
is the corresponding Unicode API. JS_HasPropertyById
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.