[webkit-dev] KJS::JSObject question
Darin Adler
darin at apple.com
Thu May 14 10:02:13 PDT 2009
On May 14, 2009, at 8:03 AM, Jack Wootton wrote:
> My question: I do not understand how JSObject can be used to allow
> for the JavaScript syntax of : myNewJSObject.someObject.hello().
My first comment is that you should not be using JSObject directly.
The right way to do this is to use the C-based public API of
JavaScriptCore, which includes types like JSObjectRef. The JSObject
internal interface is constantly being changed and not suitable for
use outside the WebKit project.
In JavaScript, if you want:
a.b.c()
to work, then the object "a" need a property "b" with a property "c"
that is callable as a function. At each level, the object can just be
a general purpose object with a property attached, which can be set up
with functions like JSObjectSetProperty, or the property can come from
the object’s prototype, or the property can be “built in” to the
object, which can by done with JSClassCreate supplying a
JSObjectGetPropertyCallback function.
When it comes to the value of the property named "c", to make
something callable as a function, you can either use an actual
compiled JavaScript function, one of the built in JavaScript functions
such as String.prototype.toLowerCase or you can make an object that
acts like a function using JSClassCreate supplying a
JSObjectCallAsFunctionCallback function.
-- Darin
More information about the webkit-dev
mailing list