JS_DeleteProperty 编辑
Removes a specified property from an object.
Syntax
bool
JS_DeleteProperty(JSContext *cx, JS::HandleObject obj, const char *name);
bool
JS_DeletePropertyById(JSContext *cx, JS::HandleObject obj, jsid id); // Added in SpiderMonkey 1.8.1
// Added in SpiderMonkey 45
bool
JS_DeleteProperty(JSContext *cx, JS::HandleObject obj, const char *name,
JS::ObjectOpResult &result);
bool
JS_DeletePropertyById(JSContext *cx, JS::HandleObject obj, JS::HandleId id,
JS::ObjectOpResult &result);
bool
JS_DeleteUCProperty(JSContext *cx, JS::HandleObject obj, const char16_t *name, size_t namelen,
JS::ObjectOpResult &result);
Name | Type | Description |
---|---|---|
cx | JSContext * | Pointer to a JS context from which to derive runtime information. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext . |
obj | JS::HandleObject | Object from which to delete a property. |
name or id | const char * or jsid or const char16_t * | Name of the property to delete. |
namelen | size_t | (only in JS_DeleteUCProperty ) The length of name in characters; or -1 to indicate that name is null-terminated. |
result | JS::ObjectOpResult & | (out parameter) Receives the result of the operation. |
Description
JS_DeleteProperty
removes a specified property, name
, from an object, obj
. JS_DeletePropertyById
is the same but takes a jsid
for the property name. These functions are identical to JS_DeleteProperty2
and JS_DeletePropertyById2
except that they do not have an out parameter.
First, a property lookup is performed. Then one of the following cases applies:
- If
obj
has no property with the givenname
orid
, or ifobj
inherits the specified property from its prototype, thenobj
'sJSClass.delProperty
hook is called. No property is deleted, but this is not an error. - If
obj
has the specified property but it is permanent, nothing happens. No property is deleted, but this is not an error. - Otherwise
obj
has a non-permanent own property with the givenname
orid
. In this case,obj
'sJSClass.delProperty
hook is called. If the hook returnsfalse
, the error is propagated. Otherwise, ifobj
is not configurable, an error is raised. Otherwise, the property is removed.
These functions return true
on success, regardless of whether a property was actually deleted, and false
on error or exception.
(In JavaScript 1.2 and earlier, attempting to delete a permanent property caused an error. There is no longer any way to get this behavior.)
Internally, property deletion is implemented by the JSObjectOps.deleteProperty
callback.
To remove all properties from an object, call JS_ClearScope
.
See Also
- MXR ID Search for
JS_DeleteProperty
- MXR ID Search for
JS_DeletePropertyById
JS_DeleteProperty2
JS_DeletePropertyById2
- bug 461163
- bug 1113369 -- added
result
parameter andJS_DeleteUCProperty
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论