If you create a JSObject with JSObjectMake() function, you can have a private data associated to the newly created JSObject. You can store anything you want in the private data. So following approach might be feasible for you:
1. define a special JSClass for your function, which has finalize and callAsFunction set. In finalize() method, you need destroy the private data associated to the JSObject, if necessary. callAsFunction points to your getValue_cb. 2. create the getValue function object by calling JSObjectMake() with the function name "getValue" as private data. 3. attach the function object to myObject with name "getValue". It might be done in myObject class's initialize() method. 4. in getValue_cb function you can retrieve the private data (which contains the name) by calling JSObjectGetPrivate(function). The only drawback of this approach: you can't declare the function statically in staticFunctions. Regards James Su On Fri, May 15, 2009 at 10:53 AM, Xiong <[email protected]> wrote: > Thanks Darin. > > For the first problem, as you said, all the functions are objects, and also > have **properties**. > > So,can we add a member for the "function object" to store the method > name[here is "getValues"] in theoretical ? > > And this also like the "JSObjectRef object" variable in the callback > prototype,we can get the class name like this: > > toJS(object)->className().data() > > Thanks. > > -Xiong > > > On Fri, May 15, 2009 at 10:29 AM, Darin Adler <[email protected]> wrote: > >> On May 14, 2009, at 7:03 PM, Xiong wrote: >> >> 1 what is the purpose of the "JSObjectRef function" variable? In my >>> case, we never use. >>> >> >> It’s fine to not use this if you don’t need to. In JavaScript, functions >> are objects. Like other objects they can have properties. This argument is >> passed to your C implementation so that it can get access to properties of >> the function object if it has some reason to. In many cases there is no need >> to do this. >> >> 2 In this function, i want to get the propertyName of the method, in >>> this case, we need "getValues", can be implemented ? >>> >> >> No, there's no way to do that, for a good architectural reason. >> >> A JavaScript function is a first class object. Using JSObjectMake will >> create an object with a prototype that has functions stored in its >> properties, but there’s nothing to prevent the JavaScript program from >> taking that function and storing it somewhere else, in a property with >> another name. When the function is called, it’s just an object, and there’s >> no way to go back in time and find out where that object came from. >> >> Consider the similar situation of a data property. When you get the length >> of an array, it's a number 1, not a number 1 that knows it came from a >> property named "length". >> >> -- Darin >> >> > > _______________________________________________ > webkit-dev mailing list > [email protected] > http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev > >
_______________________________________________ webkit-dev mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

