AFAIK, there is no way to achieve what you want by using staticFunc structure. Of course, if you use different C functions for each staticFunc entry, you actually don&#39;t need the name.<br><br>Regards<br>James Su<br><br>
<div class="gmail_quote">On Fri, May 15, 2009 at 3:24 PM, Xiong <span dir="ltr">&lt;<a href="mailto:browserwk@gmail.com">browserwk@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks Su.<br><br>I think i know you mean.<br><br>To get the method name [&quot;getValue&quot;] via attach a private data to function object which create by JSObjectMake().<br><br>Yes, it&#39;s a better way, but not for me.<br>

<br>In my program, we have many Object and it&#39;s method and now all in staticFunc structure.<br><br>Thanks again.<br><font color="#888888"><br>-Xiong</font><div><div></div><div class="h5"><br><br><div class="gmail_quote">
On Fri, May 15, 2009 at 11:57 AM, Zhe Su <span dir="ltr">&lt;<a href="http://james.su" target="_blank">james.su</a>@<a href="http://gmail.com" target="_blank">gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">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:<br>


<br>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.<br>


2. create the getValue function object by calling JSObjectMake() with the function name &quot;getValue&quot; as private data.<br>3. attach the function object to myObject with name &quot;getValue&quot;. It might be done in myObject class&#39;s initialize() method.<br>


4. in getValue_cb function you can retrieve the private data (which contains the name) by calling JSObjectGetPrivate(function).<br><br>The only drawback of this approach: you can&#39;t declare the function statically in staticFunctions.<br>


<br>Regards<br>James Su<br><br><div class="gmail_quote"><div><div></div><div>On Fri, May 15, 2009 at 10:53 AM, Xiong <span dir="ltr">&lt;<a href="mailto:browserwk@gmail.com" target="_blank">browserwk@gmail.com</a>&gt;</span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div>
Thanks Darin.<br><br>For the first problem, as you said, all the functions are objects, and also have **properties**.<br><br>So,can we add a member for the &quot;function object&quot; to store the method name[here is &quot;getValues&quot;] in theoretical ?<br>



<br>And this also like the &quot;JSObjectRef object&quot; variable in the callback prototype,we can get the class name like this:<br><br>toJS(object)-&gt;className().data()<br><br>Thanks.<br><font color="#888888"><br>-Xiong</font><div>


<div></div><div><br><br><div class="gmail_quote">
On Fri, May 15, 2009 at 10:29 AM, Darin Adler <span dir="ltr">&lt;<a href="mailto:darin@apple.com" target="_blank">darin@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



<div>On May 14, 2009, at 7:03 PM, Xiong wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
1    what is the purpose of the &quot;JSObjectRef function&quot; variable? In my case, we never use.<br>
</blockquote>
<br></div>
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.<div>



<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2    In this function, i want to get the propertyName of the method, in this case, we need &quot;getValues&quot;, can be implemented ?<br>
</blockquote>
<br></div>
No, there&#39;s no way to do that, for a good architectural reason.<br>
<br>
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.<br>




<br>
Consider the similar situation of a data property. When you get the length of an array, it&#39;s a number 1, not a number 1 that knows it came from a property named &quot;length&quot;.<br><font color="#888888">
<br>
    -- Darin<br>
<br>
</font></blockquote></div><br>
</div></div><br></div></div>_______________________________________________<br>
webkit-dev mailing list<br>
<a href="mailto:webkit-dev@lists.webkit.org" target="_blank">webkit-dev@lists.webkit.org</a><br>
<a href="http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev" target="_blank">http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev</a><br>
<br></blockquote></div><br>
</blockquote></div><br>
</div></div></blockquote></div><br>