[webkit-dev] JSObjectCallAsFunctionCallback question

Xiong browserwk at gmail.com
Thu May 14 19:53:53 PDT 2009


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 <darin at apple.com> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20090515/028793c1/attachment.html>


More information about the webkit-dev mailing list