📄 object.html
字号:
</TR></TABLE><P></zparagraph></FONT><P><BR><A NAME="1193526"> </A><A NAME="Description"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zrefheader>Description</zrefheader></B></FONT><BR><A NAME="1193527"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>The JavaScript debugger has functionality similar to that provided by this method, as well as other debugging options. For information on the debugger, see <I><A HREF="http://developer.netscape.com/docs/manuals/jsdebug/index.htm">Getting Started with Netscape JavaScript Debugger</A></I>.</zparagraph></FONT><P><A NAME="1200644"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>By default, this method is inherited by every object descended from <FONT FACE="courier, couriernew, monospaced size">Object</FONT>.</zparagraph></FONT><P><BR><A NAME="1193533"> </A><A NAME="Example"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zrefheader>Example</zrefheader></B></FONT><BR><A NAME="1193537"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>See <A HREF="object.html#1193628" >watch</A>.</zparagraph></FONT><P><BR><P><A NAME="1193540"> </A><A NAME="valueOf"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="4"><B><zrefhead2>valueOf</zrefhead2></B></FONT><P><A NAME="1193553"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>Returns the primitive value of the specified object.<BR><P><TABLE WIDTH="90%" BORDER="1" CELLPADDING="5" CELLSPACING="0"> <CAPTION></CAPTION><P><FONT FACE=""><B></B></FONT><BR><BR> <TR> <TD VALIGN=TOP><P><A NAME="1193543"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext><I>Method of</I></ztabletext></FONT> </TD> <TD VALIGN=TOP><P><A NAME="1193548"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext><A HREF="object.html#1193136" >Object</A></ztabletext></FONT> </TD> </TR> <TR> <TD VALIGN=TOP><P><A NAME="1193550"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext><I>Implemented in</I></ztabletext></FONT> </TD> <TD VALIGN=TOP><P><A NAME="1193552"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext>JavaScript 1.1</ztabletext></FONT> </TD> </TR> <TR> <TD VALIGN=TOP><P><A NAME="1196506"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext><I>ECMA version</I></ztabletext></FONT> </TD> <TD VALIGN=TOP><P><A NAME="1196508"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext>ECMA-262</ztabletext></FONT> </TD> </TR></TABLE><P></zparagraph></FONT><P><BR><A NAME="1193554"> </A><A NAME="Syntax"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zrefheader>Syntax</zrefheader></B></FONT><BR><A NAME="1193555"></A><FONT FACE="courier, couriernew, monospaced size" SIZE="-1"><zcodeline>valueOf()</zcodeline></FONT><P><BR><A NAME="1193556"> </A><A NAME="Parameters"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zrefheader>Parameters</zrefheader></B></FONT><BR><A NAME="1193557"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>None</zparagraph></FONT><P><BR><A NAME="1200569"> </A><A NAME="Description"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zrefheader>Description</zrefheader></B></FONT><BR><A NAME="1204828"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>JavaScript calls the <FONT FACE="courier, couriernew, monospaced size">valueOf</FONT> method to convert an object to a primitive value. You rarely need to invoke the <FONT FACE="courier, couriernew, monospaced size">valueOf</FONT> method yourself; JavaScript automatically invokes it when encountering an object where a primitive value is expected.</zparagraph></FONT><P><A NAME="1198170"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>By default, the <FONT FACE="courier, couriernew, monospaced size">valueOf</FONT> method is inherited by every object descended from <FONT FACE="courier, couriernew, monospaced size">Object</FONT>. Every built-in core object overrides this method to return an appropriate value. If an object has no primitive value, <FONT FACE="courier, couriernew, monospaced size">valueOf</FONT> returns the object itself, which is displayed as:</zparagraph></FONT><P><A NAME="1198203"></A><FONT FACE="courier, couriernew, monospaced size" SIZE="-1"><zcodeline>[object Object]</zcodeline></FONT><P><A NAME="1198132"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>You can use <FONT FACE="courier, couriernew, monospaced size">valueOf</FONT> within your own code to convert a built-in object into a primitive value. When you create a custom object, you can override <A HREF="object.html#1193540" >Object.valueOf</A> to call a custom method instead of the default <FONT FACE="courier, couriernew, monospaced size">Object</FONT> method.</zparagraph></FONT><P><P><A NAME="1193605"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zheadrunin>Overriding valueOf for custom objects. </zheadrunin></B></FONT><A NAME="1198049"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>You can create a function to be called in place of the default <FONT FACE="courier, couriernew, monospaced size">valueOf</FONT> method. Your function must take no arguments.</zparagraph></FONT><P><A NAME="1193606"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>Suppose you have an object type <FONT FACE="courier, couriernew, monospaced size">myNumberType</FONT> and you want to create a <FONT FACE="courier, couriernew, monospaced size">valueOf</FONT> method for it. The following code assigns a user-defined function to the object's <FONT FACE="courier, couriernew, monospaced size">valueOf</FONT> method:</zparagraph></FONT><P><A NAME="1193607"></A><FONT FACE="courier, couriernew, monospaced size" SIZE="-1"><zcodeline>myNumberType.prototype.valueOf = new Function(functionText)</zcodeline></FONT><P><A NAME="1193608"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>With the preceding code in place, any time an object of type <FONT FACE="courier, couriernew, monospaced size">myNumberType</FONT> is used in a context where it is to be represented as a primitive value, JavaScript automatically calls the function defined in the preceding code.</zparagraph></FONT><P><A NAME="1193609"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>An object's <FONT FACE="courier, couriernew, monospaced size">valueOf</FONT> method is usually invoked by JavaScript, but you can invoke it yourself as follows:</zparagraph></FONT><P><A NAME="1193610"></A><FONT FACE="courier, couriernew, monospaced size" SIZE="-1"><zcodeline>myNumber.valueOf()</zcodeline></FONT><P><A NAME="1193611"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><znote>Note</znote></B></FONT><A NAME="1193615"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>Objects in string contexts convert via the <A HREF="object.html#1193350" >toString</A> method, which is different from <FONT FACE="courier, couriernew, monospaced size">String</FONT> objects converting to string primitives using <FONT FACE="courier, couriernew, monospaced size">valueOf</FONT>. All string objects have a string conversion, if only <FONT FACE="courier, couriernew, monospaced size">"[object </FONT><FONT FACE="courier, couriernew, monospaced size"><I>type</I></font><FONT FACE="courier, couriernew, monospaced size">]"</FONT>. But many objects do not convert to number, boolean, or function.</zparagraph></FONT><P><BR><A NAME="1193619"> </A><A NAME="See also"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zrefheader>See also</zrefheader></B></FONT><BR><A NAME="1193626"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph><A HREF="toplev.html#1064173" >parseInt</A>, <A HREF="object.html#1193350" >Object.toString</A></zparagraph></FONT><P><BR><P><A NAME="1193628"> </A><A NAME="watch"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="4"><B><zrefhead2>watch</zrefhead2></B></FONT><P><A NAME="1193630"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>Watches for a property to be assigned a value and runs a function when that occurs.<BR><P><TABLE WIDTH="90%" BORDER="1" CELLPADDING="5" CELLSPACING="0"> <CAPTION></CAPTION><P><FONT FACE=""><B></B></FONT><BR><BR> <TR> <TD VALIGN=TOP><P><A NAME="1193633"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext><I>Method of</I></ztabletext></FONT> </TD> <TD VALIGN=TOP><P><A NAME="1193638"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext><A HREF="object.html#1193136" >Object</A></ztabletext></FONT> </TD> </TR> <TR> <TD VALIGN=TOP><P><A NAME="1193640"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext><I>Implemented in</I></ztabletext></FONT> </TD> <TD VALIGN=TOP><P><A NAME="1193642"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext>JavaScript 1.2, NES 3.0</ztabletext></FONT> </TD> </TR></TABLE><P></zparagraph></FONT><P><BR><A NAME="1193643"> </A><A NAME="Syntax"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zrefheader>Syntax</zrefheader></B></FONT><BR><A NAME="1193644"></A><FONT FACE="courier, couriernew, monospaced size" SIZE="-1"><zcodeline>watch(<I>prop</I>, <I>handler</I>)</zcodeline></FONT><P><BR><A NAME="1193645"> </A><A NAME="Parameters"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zrefheader>Parameters</zrefheader></B></FONT><BR><A NAME="1193655"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph><FONT FACE="courier, couriernew, monospaced size"><BR><P><TABLE WIDTH="90%" BORDER="1" CELLPADDING="5" CELLSPACING="0"> <CAPTION></CAPTION><P><FONT FACE=""><B></B></FONT><BR><BR> <TR> <TD VALIGN=TOP><P><A NAME="1193648"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext><FONT FACE="courier, couriernew, monospaced size">prop</FONT></ztabletext></FONT> </TD> <TD VALIGN=TOP><P><A NAME="1193650"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext>The name of a property of the object.</ztabletext></FONT> </TD> </TR> <TR> <TD VALIGN=TOP><P><A NAME="1193652"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext><FONT FACE="courier, couriernew, monospaced size">handler</FONT></ztabletext></FONT> </TD> <TD VALIGN=TOP><P><A NAME="1193654"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><ztabletext>A function to call.</ztabletext></FONT> </TD> </TR></TABLE><P></FONT></zparagraph></FONT><P><BR><A NAME="1193656"> </A><A NAME="Description"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zrefheader>Description</zrefheader></B></FONT><BR><A NAME="1193657"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>Watches for assignment to a property named <FONT FACE="courier, couriernew, monospaced size">prop</FONT> in this object, calling <FONT FACE="courier, couriernew, monospaced size">handler(prop, oldval, newval)</FONT> whenever <FONT FACE="courier, couriernew, monospaced size">prop</FONT> is set and storing the return value in that property. A watchpoint can filter (or nullify) the value assignment, by returning a modified <FONT FACE="courier, couriernew, monospaced size">newval</FONT> (or <FONT FACE="courier, couriernew, monospaced size">oldval</FONT>).</zparagraph></FONT><P><A NAME="1193658"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>If you delete a property for which a watchpoint has been set, that watchpoint does not disappear. If you later recreate the property, the watchpoint is still in effect. </zparagraph></FONT><P><A NAME="1200696"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>To remove a watchpoint, use the <A HREF="object.html#1193499" >unwatch</A> method. By default, the <FONT FACE="courier, couriernew, monospaced size">watch</FONT> method is inherited by every object descended from <FONT FACE="courier, couriernew, monospaced size">Object</FONT>.</zparagraph></FONT><P><A NAME="1193663"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>The JavaScript debugger has functionality similar to that provided by this method, as well as other debugging options. For information on the debugger, see <I><A HREF="http://developer.netscape.com/docs/manuals/jsdebug/index.htm">Getting Started with Netscape JavaScript Debugger</A></I>.</zparagraph></FONT><P><BR><A NAME="1193669"> </A><A NAME="Example"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="-1"><B><zrefheader>Example</zrefheader></B></FONT><BR><A NAME="1193670"></A><FONT FACE="courier, couriernew, monospaced size" SIZE="-1"><zcodeline><script language="JavaScript1.2"><br>o = {p:1}<br>o.watch("p",<br> function (id,oldval,newval) {<br> document.writeln("o." + id + " changed from " <br> + oldval + " to " + newval)<br> return newval<br> })</zcodeline></FONT><P><A NAME="1193671"></A><FONT FACE="courier, couriernew, monospaced size" SIZE="-1"><zcodeline>o.p = 2<br>o.p = 3<br>delete o.p<br>o.p = 4</zcodeline></FONT><P><A NAME="1193672"></A><FONT FACE="courier, couriernew, monospaced size" SIZE="-1"><zcodeline>o.unwatch('p')<br>o.p = 5</zcodeline></FONT><P><A NAME="1193673"></A><FONT FACE="courier, couriernew, monospaced size" SIZE="-1"><zcodeline></script></zcodeline></FONT><P><A NAME="1193674"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>This script displays the following:</zparagraph></FONT><P><A NAME="1193675"> </A><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2"><zparagraph>o.p changed from 1 to 2<br>o.p changed from 2 to 3<br>o.p changed from 3 to 4</zparagraph></FONT><P> </BLOCKQUOTE></BOOKCONTENT><FOOTERCONTENT> <BLOCKQUOTE> <BR> <b><a href="number.html"><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2" COLOR="#993300">Previous</a></FONT> </b><a href="contents.html"><b><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2" COLOR="#993300">Contents</a></FONT></b> <a href="ix.html"><b><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2" COLOR="#993300">Index</a></FONT></b> <a href="packages.html"><b><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2" COLOR="#993300">Next</a></FONT></b> <HR NOSHADE SIZE="1"> <font face="Arial, Helvetica, sans-serif" SIZE="1">Copyright © 2000 <a href="http://www.netscape.com">Netscape Communications Corp.</a> All rights reserved.</FONT> </BLOCKQUOTE> <FONT FACE="Arial, Helvetica, sans-serif" SIZE="1"> <P ALIGN="RIGHT">Last Updated <B>September 28, 2000</B> </FONT> <BR></FOOTERCONTENT></MAINCONTENT></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -