??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲熟妇无码久久精品,亚洲日韩aⅴ在线视频,妇女自拍偷自拍亚洲精品http://www.tkk7.com/zhuyongjp/zh-cnSun, 11 May 2025 14:57:06 GMTSun, 11 May 2025 14:57:06 GMT60转义字符http://www.tkk7.com/zhuyongjp/archive/2009/08/05/289957.htmlzhuyongjpzhuyongjpWed, 05 Aug 2009 07:32:00 GMThttp://www.tkk7.com/zhuyongjp/archive/2009/08/05/289957.htmlhttp://www.tkk7.com/zhuyongjp/comments/289957.htmlhttp://www.tkk7.com/zhuyongjp/archive/2009/08/05/289957.html#Feedback0http://www.tkk7.com/zhuyongjp/comments/commentRss/289957.htmlhttp://www.tkk7.com/zhuyongjp/services/trackbacks/289957.html  HTML?lt;Q?gt;Q?amp;{有Ҏ含义Q?lt;Q?gt;Q用于链接签Q?amp;用于转义Q,不能直接使用。这些符h不显C在我们最l看到的|页里的Q那如果我们希望在网中昄q些W号Q该怎么办呢Q?

q就要说到HTML转义字符ԌEscape SequenceQ了?

转义字符?/font> QEscape SequenceQ也U字W实?Character Entity)。在HTML中,定义转义字符串的原因有两个:W一个原因是像?lt;”和?gt;”这cȝ号已l用来表CHTML标签Q因此就不能直接当作文本中的W号来用。ؓ了在HTML文档中用这些符P需要定义它的{义字W串。当解释E序遇到q类字符串时把它解释ؓ真实的字W。在输入转义字符串时Q要严格遵守字母大小写的规则。第二个原因是,有些字符在ASCII字符集中没有定义Q因此需要用{义字W串来表C?

转义字符串的l成

转义字符ԌEscape SequenceQ,卛_W实体(Character EntityQ分成三部分Q第一部分是一?amp;W号Q英文叫ampersandQ第二部分是实体QEntityQ名字或者是#加上实体QEntityQ编PW三部分是一个分受?

比如Q要昄于P<Q,可以写 &lt; 或?&#60; ?

用实体(EntityQ名字的好处是比较好理解Q一看ltQ大概就猜出是less than的意思,但是其劣势在于ƈ不是所有的览器都支持最新的Entity名字。而实?Entity)~号Q各U浏览器都能处理?

提示Q实体名UͼEntityQ是区分大小写的?

备注Q同一个符P可以用“实体名U”和“实体编号”两U方式引用,“实体名U”的优势在于便于记忆Q但不能保证所有的览器都能顺利识别它Q而“实体编号”则没有q种担忧Q但它实在不方便记忆?

如何昄I格Q?/h2>

通常情况下,HTML会自动截d余的I格。不你加多空|都被看做一个空根{比如你在两个字之间加了10个空|HTML会截?个空|只保留一个。ؓ了在|页中增加空|你可以?amp;nbsp;表示I格?


HTMLҎ转义字符列表

最常用的字W实?br />Character Entities

说明 实体名称 实体~号
半方大的I白 &ensp; &#8194;
全方大的I白 &emsp; &#8195;
不断行的I白?/td> &nbsp; &#160;
< &lt; &#60;
> 大于 &gt; &#62;
& &W号 &amp; &#38;
" 双引?/td> &quot; &#34;
© 版权 &copy; &#169;
] 已注册商?/td> &reg; &#174;
?/td> 商标Q美国) ?/td> &#8482;
× 乘号 &times; &#215;
÷ 除号 &divide; &#247;

ISO 8859-1 (Latin-1)字符?/h2>

HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集?

备注Qؓ了方便v见,以下表格中,“实体名U”简UCؓ“名U”,“实体编号”简UCؓ“编号?

名称 ~号 名称 ~号 名称 ~号 名称 ~号 名称 ~号
  &nbsp; &#160; ¡ &iexcl; &#161; &cent; &#162; n &pound; &#163; ] &curren; &#164;
&yen; &#165; &brvbar; &#166; &sect; &#167; t &uml; &#168; © &copy; &#169;
ª &ordf; &#170; J &laquo; &#171; R &not; &#172; B &shy; &#173; ] &reg; &#174;
t &macr; &#175; &deg; &#176; u &plusmn; &#177; ̔ &sup2; &#178; &sup3; &#179;
´ &acute; &#180; µ &micro; &#181; &para; &#182; · &middot; &#183; T &cedil; &#184;
¹ &sup1; &#185; º &ordm; &#186; &raquo; &#187; &frac14; &#188; &frac12; &#189;
¾ &frac34; &#190; H &iquest; &#191; À &Agrave; &#192; Á &Aacute; &#193; Â &Acirc; &#194;
à &Atilde; &#195; Ä &Auml; &#196; Å &Aring; &#197; Æ &AElig; &#198; Ç &Ccedil; &#199;
È &Egrave; &#200; É &Eacute; &#201; Ê &Ecirc; &#202; Ë &Euml; &#203; Ì &Igrave; &#204;
Í &Iacute; &#205; Î &Icirc; &#206; Ï &Iuml; &#207; Ð &ETH; &#208; Ñ &Ntilde; &#209;
Ò &Ograve; &#210; Ó &Oacute; &#211; Ô &Ocirc; &#212; Õ &Otilde; &#213; Ö &Ouml; &#214;
× &times; &#215; Ø &Oslash; &#216; Ù &Ugrave; &#217; Ú &Uacute; &#218; Û &Ucirc; &#219;
Ü &Uuml; &#220; Ý &Yacute; &#221; Þ &THORN; &#222; ß &szlig; &#223; à &agrave; &#224;
֙ &aacute; &#225; â &acirc; &#226; ã &atilde; &#227; ä &auml; &#228; å &aring; &#229;
æ &aelig; &#230; ç &ccedil; &#231; ؈ &egrave; &#232; é &eacute; &#233; ^ &ecirc; &#234;
ë &euml; &#235; ì &igrave; &#236; T &iacute; &#237; î &icirc; &#238; ï &iuml; &#239;
ð &eth; &#240; ñ &ntilde; &#241; ò &ograve; &#242; Q &oacute; &#243; ô &ocirc; &#244;
õ &otilde; &#245; ö &ouml; &#246; ÷ &divide; &#247; ø &oslash; &#248; ù &ugrave; &#249;
ú &uacute; &#250; ] &ucirc; &#251; ü &uuml; &#252; ý &yacute; &#253; V &thorn; &#254;
ÿ &yuml; &#255;

数学和希腊字母标?br />symbols, mathematical symbols, and Greek letters

名称 ~号 名称 ~号 名称 ~号 名称 ~号 名称 ~号
ƒ &fnof; &#402; Α &Alpha; &#913; Β &Beta; &#914; Γ &Gamma; &#915; Δ &Delta; &#916;
Ε &Epsilon; &#917; Ζ &Zeta; &#918; Η &Eta; &#919; Θ &Theta; &#920; Ι &Iota; &#921;
Κ &Kappa; &#922; Λ &Lambda; &#923; Μ &Mu; &#924; Ν &Nu; &#925; Ξ &Xi; &#926;
Ο &Omicron; &#927; Π &Pi; &#928; Ρ &Rho; &#929; Σ &Sigma; &#931; f &Tau; &#932;
` &Upsilon; &#933; Φ &Phi; &#934; &Chi; &#935; Ψ &Psi; &#936; Ω &Omega; &#937;
&alpha; &#945; β &beta; &#946; &gamma; &#947; δ &delta; &#948; ε &epsilon; &#949;
ζ &zeta; &#950; η &eta; &#951; θ &theta; &#952; ι &iota; &#953; κ &kappa; &#954;
λ &lambda; &#955; μ &mu; &#956; ^ &nu; &#957; ξ &xi; &#958; ο &omicron; &#959;
π &pi; &#960; ρ &rho; &#961; ς &sigmaf; &#962; σ &sigma; &#963; τ &tau; &#964;
υ &upsilon; &#965; φ &phi; &#966; χ &chi; &#967; ψ &psi; &#968; ω &omega; &#969;
? &thetasym; &#977; ? &upsih; &#978; ? &piv; &#982; ?/td> &bull; &#8226; ?/td> &hellip; &#8230;
?/td> &prime; &#8242; ?/td> &Prime; &#8243; ?/td> &oline; &#8254; ?/td> &frasl; &#8260; ?/td> &weierp; &#8472;
?/td> &image; &#8465; ?/td> &real; &#8476; ?/td> &trade; &#8482; ?/td> &alefsym; &#8501; ?/td> &larr; &#8592;
?/td> &uarr; &#8593; ?/td> &rarr; &#8594; ?/td> &darr; &#8595; ?/td> &harr; &#8596; ?/td> &crarr; &#8629;
?/td> &lArr; &#8656; ?/td> &uArr; &#8657; ?/td> &rArr; &#8658; ?/td> &dArr; &#8659; ?/td> &hArr; &#8660;
&forall; &#8704; ?/td> &part; &#8706; ?/td> &exist; &#8707; ?/td> &empty; &#8709; ?/td> &nabla; &#8711;
?/td> &isin; &#8712; ?/td> &notin; &#8713; ?/td> &ni; &#8715; ?/td> &prod; &#8719; ?/td> &sum; &#8721;
?/td> &minus; &#8722; ?/td> &lowast; &#8727; ?/td> &radic; &#8730; ?/td> &prop; &#8733; ?/td> &infin; &#8734;
?/td> &ang; &#8736; ?/td> &and; &#8743; ?/td> &or; &#8744; ?/td> &cap; &#8745; ?/td> &cup; &#8746;
?/td> &int; &#8747; ?/td> &there4; &#8756; ?/td> &sim; &#8764; ?/td> &cong; &#8773; ?/td> &asymp; &#8776;
?/td> &ne; &#8800; ?/td> &equiv; &#8801; ?/td> &le; &#8804; ?/td> &ge; &#8805; ?/td> &sub; &#8834;
?/td> &sup; &#8835; ?/td> &nsub; &#8836; ?/td> &sube; &#8838; ?/td> &supe; &#8839; ?/td> &oplus; &#8853;
?/td> &otimes; &#8855; ?/td> &perp; &#8869; ?/td> &sdot; &#8901; ? &lceil; &#8968; ? &rceil; &#8969;
? &lfloor; &#8970; ? &rfloor; &#8971; ? &lang; &#9001; ? &rang; &#9002; ?/td> &loz; &#9674;
?/td> &spades; &#9824; ?/td> &clubs; &#9827; ?/td> &hearts; &#9829; ?/td> &diams; &#9830;

重要的国际标?br />markup-significant and internationalization characters

名称 ~号 名称 ~号 名称 ~号 名称 ~号 名称 ~号
" &quot; &#34; & &amp; &#38; < &lt; &#60; > &gt; &#62; Œ &OElig; &#338;
œ &oelig; &#339; Š &Scaron; &#352; Q &scaron; &#353; t &Yuml; &#376; ˆ &circ; &#710;
˜ &tilde; &#732; ?/td> &ensp; &#8194; ?/td> &emsp; &#8195; ?/td> &thinsp; &#8201; ?/td> &zwnj; &#8204;
?/td> &zwj; &#8205; ?/td> &lrm; &#8206; ?/td> &rlm; &#8207; ?/td> &ndash; &#8211; ?/td> &mdash; &#8212;
?/td> &lsquo; &#8216; ?/td> &rsquo; &#8217; ?/td> &sbquo; &#8218; ?/td> &ldquo; &#8220; ?/td> &rdquo; &#8221;
?/td> &bdquo; &#8222; ?/td> &dagger; &#8224; ?/td> &Dagger; &#8225; ?/td> &permil; &#8240; ?/td> &lsaquo; &#8249;
?/td> &rsaquo; &#8250; ?/td> &euro; &#8364;

JavaScript转义W?/h2>
转义序列 字符
\b 退?/td>
\f 走纸换页
\n 换行
\r 回R
\t 横向x (Ctrl-I)
\' 单引?/td>
\" 双引?/td>
\\ 反斜?/td>

~程的时候要注意Ҏ字符的问题,很多q行时出现的问题都是因ؓҎ字符的出现而引L?

注意Q由于反斜杠本n用作转义W,因此不能直接在脚本中键入一个反斜杠。如果要产生一个反斜杠Q必M起键入两个反斜杠 (\\)?


~码转换Qto UnicodeQ?/h2>

Q程序代码来源于|络Q?

Js?

<script>
     test = "你好abc"
     str = ""
     for( i=0;    i<test.length; i++ )
     {
      temp = test.charCodeAt(i).toString(16);
      str    += "\\u"+ new Array(5-String(temp).length).join("0") +temp;
     }
     document.write (str)
</script>


vbs?/strong>


Function Unicode(str1)
     Dim str,temp
     str = ""
     For i=1    to len(str1)
      temp = Hex(AscW(Mid(str1,i,1)))
      If len(temp) < 5 Then    temp = right("0000" & temp, 4)
      str = str & "\u" & temp
     Next
     Unicode = str
End Function


Function htmlentities(str)
     For i = 1 to Len(str)
         char = mid(str, i, 1)
         If Ascw(char) > 128 then
             htmlentities = htmlentities & "&#" & Ascw(char) & ";"
         Else
             htmlentities = htmlentities & char
         End if
     Next
End Function

coldfusion?/span>

function nochaoscode(str)
{
     var new_str = “?
     for(i=1; i lte len(str);i=i+1){
         if(asc(mid(str,i,1)) lt 128){
             new_str = new_str & mid(str,i,1);
         }else{
             new_str = new_str & ?amp;##?& asc(mid(str,i,1));
         }
     }
     return new_str;
}


附:

在php中我们可以用mbstring的mb_convert_encoding函数实现q个正向及反向的转化?如:


mb_convert_encoding ("你好", "HTML-ENTITIES", "gb2312"); //输出Q?amp;#20320;&#22909;

mb_convert_encoding ("&#20320;&#22909;", "gb2312", "HTML-ENTITIES"); //输出Q你?

如果需要对整个面转化Q则只需要在php文g的头部加上这三行代码Q?/p>

mb_internal_encoding("gb2312"); // q里的gb2312是你|站原来的编?

mb_http_output("HTML-ENTITIES");

ob_start('mb_output_handler');



zhuyongjp 2009-08-05 15:32 发表评论
]]>
javascript 键盘事g?keyCode http://www.tkk7.com/zhuyongjp/archive/2009/07/23/288069.htmlzhuyongjpzhuyongjpThu, 23 Jul 2009 09:57:00 GMThttp://www.tkk7.com/zhuyongjp/archive/2009/07/23/288069.htmlhttp://www.tkk7.com/zhuyongjp/comments/288069.htmlhttp://www.tkk7.com/zhuyongjp/archive/2009/07/23/288069.html#Feedback0http://www.tkk7.com/zhuyongjp/comments/commentRss/288069.htmlhttp://www.tkk7.com/zhuyongjp/services/trackbacks/288069.htmlkeycode    8 = BackSpace BackSpace
keycode    9 = Tab Tab
keycode   12 = Clear
keycode   13 = Enter
keycode   16 = Shift_L
keycode   17 = Control_L
keycode   18 = Alt_L
keycode   19 = Pause
keycode   20 = Caps_Lock
keycode   27 = Escape Escape
keycode   32 = space space
keycode   33 = Prior
keycode   34 = Next
keycode   35 = End
keycode   36 = Home
keycode   37 = Left
keycode   38 = Up
keycode   39 = Right
keycode   40 = Down
keycode   41 = Select
keycode   42 = Print
keycode   43 = Execute
keycode   45 = Insert
keycode   46 = Delete
keycode   47 = Help
keycode   48 = 0 equal braceright
keycode   49 = 1 exclam onesuperior
keycode   50 = 2 quotedbl twosuperior
keycode   51 = 3 section threesuperior
keycode   52 = 4 dollar
keycode   53 = 5 percent
keycode   54 = 6 ampersand
keycode   55 = 7 slash braceleft
keycode   56 = 8 parenleft bracketleft
keycode   57 = 9 parenright bracketright
keycode   65 = a A
keycode   66 = b B
keycode   67 = c C
keycode   68 = d D
keycode   69 = e E EuroSign
keycode   70 = f F
keycode   71 = g G
keycode   72 = h H
keycode   73 = i I
keycode   74 = j J
keycode   75 = k K
keycode   76 = l L
keycode   77 = m M mu
keycode   78 = n N
keycode   79 = o O
keycode   80 = p P
keycode   81 = q Q at
keycode   82 = r R
keycode   83 = s S
keycode   84 = t T
keycode   85 = u U
keycode   86 = v V
keycode   87 = w W
keycode   88 = x X
keycode   89 = y Y
keycode   90 = z Z
keycode   96 = KP_0 KP_0
keycode   97 = KP_1 KP_1
keycode   98 = KP_2 KP_2
keycode   99 = KP_3 KP_3
keycode 100 = KP_4 KP_4
keycode 101 = KP_5 KP_5
keycode 102 = KP_6 KP_6
keycode 103 = KP_7 KP_7
keycode 104 = KP_8 KP_8
keycode 105 = KP_9 KP_9
keycode 106 = KP_Multiply KP_Multiply
keycode 107 = KP_Add KP_Add
keycode 108 = KP_Separator KP_Separator
keycode 109 = KP_Subtract KP_Subtract
keycode 110 = KP_Decimal KP_Decimal
keycode 111 = KP_Divide KP_Divide
keycode 112 = F1
keycode 113 = F2
keycode 114 = F3
keycode 115 = F4
keycode 116 = F5
keycode 117 = F6
keycode 118 = F7
keycode 119 = F8
keycode 120 = F9
keycode 121 = F10
keycode 122 = F11
keycode 123 = F12
keycode 124 = F13
keycode 125 = F14
keycode 126 = F15
keycode 127 = F16
keycode 128 = F17
keycode 129 = F18
keycode 130 = F19
keycode 131 = F20
keycode 132 = F21
keycode 133 = F22
keycode 134 = F23
keycode 135 = F24
keycode 136 = Num_Lock
keycode 137 = Scroll_Lock
keycode 187 = acute grave
keycode 188 = comma semicolon
keycode 189 = minus underscore
keycode 190 = period colon
keycode 192 = numbersign apostrophe
keycode 210 = plusminus hyphen macron
keycode 211 =
keycode 212 = copyright registered
keycode 213 = guillemotleft guillemotright
keycode 214 = masculine ordfeminine
keycode 215 = ae AE
keycode 216 = cent yen
keycode 217 = questiondown exclamdown
keycode 218 = onequarter onehalf threequarters
keycode 220 = less greater bar
keycode 221 = plus asterisk asciitilde
keycode 227 = multiply division
keycode 228 = acircumflex Acircumflex
keycode 229 = ecircumflex Ecircumflex
keycode 230 = icircumflex Icircumflex
keycode 231 = ocircumflex Ocircumflex
keycode 232 = ucircumflex Ucircumflex
keycode 233 = ntilde Ntilde
keycode 234 = yacute Yacute
keycode 235 = oslash Ooblique
keycode 236 = aring Aring
keycode 237 = ccedilla Ccedilla
keycode 238 = thorn THORN
keycode 239 = eth ETH
keycode 240 = diaeresis cedilla currency
keycode 241 = agrave Agrave atilde Atilde
keycode 242 = egrave Egrave
keycode 243 = igrave Igrave
keycode 244 = ograve Ograve otilde Otilde
keycode 245 = ugrave Ugrave
keycode 246 = adiaeresis Adiaeresis
keycode 247 = ediaeresis Ediaeresis
keycode 248 = idiaeresis Idiaeresis
keycode 249 = odiaeresis Odiaeresis
keycode 250 = udiaeresis Udiaeresis
keycode 251 = ssharp question backslash
keycode 252 = asciicircum degree
keycode 253 = 3 sterling
keycode 254 = Mode_switch

字母和数字键的键码?keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
  A
 65 J 74 S 83 1 49
B 66 K 75 T 84 2 50
C 67 L 76 U 85 3 51
D 68 M 77 V 86 4 52
E 69 N 78 W 87 5 53
F 70 O 79 X 88 6 54
G 71 P 80 Y 89 7 55
H 72 Q 81 Z 90 8 56
I 73 R 82 0 48 9 57
数字键盘上的键的键码?keyCode) 功能键键码?keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
  0
 96 8 104 F1 112 F7 118
1 97 9 105 F2 113 F8 119
2 98 * 106 F3 114 F9 120
3 99 + 107 F4 115 F10 121
4 100 Enter 108 F5 116 F11 122
5 101 - 109 F6 117 F12 123
6 102   .
 110        
7   103
 / 111        
控制键键码?keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
BackSpace 8 Esc 27 Right Arrow 39 -_ 189
Tab 9 Spacebar 32 Down Arrow 40 .> 190
Clear 12 Page Up 33 Insert 45 /? 191
Enter 13 Page Down 34 Delete 46 `~ 192
Shift 16 End 35 Num Lock 144 [{ 219
Control 17 Home 36 ;: 186 \| 220
Alt 18 Left Arrow 37 =+ 187 ]} 221
Cape Lock 20 Up Arrow 38 ,< 188 '" 222



zhuyongjp 2009-07-23 17:57 发表评论
]]>
javascript 创徏DOM节点http://www.tkk7.com/zhuyongjp/archive/2009/07/22/287859.htmlzhuyongjpzhuyongjpWed, 22 Jul 2009 07:27:00 GMThttp://www.tkk7.com/zhuyongjp/archive/2009/07/22/287859.htmlhttp://www.tkk7.com/zhuyongjp/comments/287859.htmlhttp://www.tkk7.com/zhuyongjp/archive/2009/07/22/287859.html#Feedback1http://www.tkk7.com/zhuyongjp/comments/commentRss/287859.htmlhttp://www.tkk7.com/zhuyongjp/services/trackbacks/287859.htmljavascript 如何创徏一?DOM 节点Q?br />




key
-------------------------------------------
1、a.创徏一个Element             var newDiv = document.createElement("div");
   b.讄它的属性              ?newDiv.id = "divNew";
       c.如果需要,创徏子节点    ?var newTable = document.createElement("table");
       d.讄子节点属性         ?newTable.setAttribute("id","tableNew");
       e.重复步骤c和d,直到完成整个目录?br />       f.创徏Text节点            var newText = document.createTextNode("string");
  g.从叶子节点往上appendChild     newDiv.appendChild(newTable);
                                document.body.appendChild(newDiv);

另一U方?
    a.创徏一个Element            var newDiv = document.createElement("div");
    b.?innerHTML                                newDiv.innerHTML="<table><tr><th>type</th><th>value</th></tr></table>";


zhuyongjp 2009-07-22 15:27 发表评论
]]>
领悟 JavaScript 中的面向对象http://www.tkk7.com/zhuyongjp/archive/2009/07/17/287180.htmlzhuyongjpzhuyongjpFri, 17 Jul 2009 08:03:00 GMThttp://www.tkk7.com/zhuyongjp/archive/2009/07/17/287180.htmlhttp://www.tkk7.com/zhuyongjp/comments/287180.htmlhttp://www.tkk7.com/zhuyongjp/archive/2009/07/17/287180.html#Feedback0http://www.tkk7.com/zhuyongjp/comments/commentRss/287180.htmlhttp://www.tkk7.com/zhuyongjp/services/trackbacks/287180.html领悟 JavaScript 中的面向对象


JavaScript 是面向对象的。但是不h对这一点理解得q不全面?br />
?JavaScript 中,对象分ؓ两种。一U可以称为“普通对象”,是我们所普遍理解的那些:数字、日期、用戯定义的对象(如:{}Q等{?br />
q有一U,UCؓ“方法对象”,是我们通常定义?function。你可能觉得奇怪:Ҏ是ҎQ怎么成了对象了?但是?JavaScript 中,Ҏ的确是被当成对象来处理的。下面是一个简单的例子Q?br />

Js代码
  1. function  func() {alert( 'Hello!' );}   
  2. alert(func.toString());  

在这个例子中Qfunc 虽然是作Z个方法定义的Q但它自w却包含一?toString ҎQ说?func 在这里是被当成一个对象来处理的。更准确的说Qfunc 是一个“方法对象”。下面是例子的l:

Js代码
  1. func.name = “I am func.?   
  2. alert(func.name);  

我们可以L的ؓ func 讄属性,q更加证明了 func 是一个对象。那么方法对象和普通对象的区别在哪里呢Q首先方法对象当然是可以执行的,在它后面加上一ҎP是执行q个Ҏ对象了?br />
Js代码
  1. func();  

所以,Ҏ对象h二重性。一斚w它可以被执行Q另一斚w它完全可以被当成一个普通对象来使用。这意味着什么呢Q这意味着Ҏ对象是可以完全独立于其他对象存在的。这一Ҏ们可以同 Java 比较一下。在 Java 中,Ҏ必须在某一个类中定义,而不能单独存在。?JavaScript 中就不需要?br />
Ҏ对象独立于其他方法,意味着它能够被L的引用和传递。下面是一个例子:

Js代码
  1. function invoke(f) {   
  2.     f();   
  3. }   
  4. invoke(func);  

一个方法对?func 传递给另一个方法对?invokeQ让后者在适当的时候执?func。这是所谓的“回调”了。另外,Ҏ对象的这U特D性,也?this 关键字不Ҏ把握。这斚w相关文章不少Q这里不赘述了?br />
除了可以被执行以外,Ҏ对象q有一个特D的功用Q就是它可以通过 new 关键字来创徏普通对象?br />
话说每一个方法对象被创徏Ӟ都会自动的拥有一个叫 prototype 的属性。这个属性ƈ无什么特别之处,它和其他的属性一样可以访问,可以赋倹{不q当我们?new 关键字来创徏一个对象的时候,prototype pv作用了:它的|也是一个对象)所包含的所有属性,都会被复制到新创建的那个对象上去。下面是一个例子:

Js代码
  1. func.prototype.name=”prototype of func?   
  2. var f = new func();   
  3. alert(f.name);  

执行的过E中会弹Z个对话框Q后一个对话框表示 f q个新徏的对象从 func.prototype 那里拯?name 属性。而前一个对话框则表C?func 被作为方法执行了一遍。你可能会问了,Z么这个时候要q把 func 执行一遍呢Q其实这个时候执?funcQ就是v“构造函数”的作用。ؓ了Ş象的说明Q我们重新来一遍:

Js代码
  1. function func() {   
  2.     this.name=”name has been changed.?  
  3. }   
  4. func.prototype.name=”prototype of func?   
  5. var f = new func();   
  6. alert(f.name);  

你就会发?f ?name 属性不再是"prototype of func"Q而是被替换成?name has been changed"。这是 func q个对象Ҏ所起到的“构造函数”的作用。所以,?JavaScript 中,?new 关键字创建对象是执行了下面三个步骤的Q?br />
  1. 创徏一个新的普通对象;
  2. 方法对象的 prototype 属性的所有属性复制到新的普通对象中厅R?
  3. 以新的普通对象作Z下文来执行方法对象?/li>

对于“new func()”这L语句Q可以描qCؓ“从 func 创徏一个新对象”。MQprototype q个属性的唯一Ҏ之处Q就是在创徏新对象的时候了?/p>


那么我们可以利用这一炏V比如有两个Ҏ对象 A ?BQ既然从 A 创徏的新对象包含了所?A.prototype 的属性,那么我将它赋l?B.prototypeQ那么从 B 创徏的新对象不也有同L属性了Q写成代码就是这P

 

Js代码
  1. A.prototype.hello = function(){alert('Hello!');}   
  2. B.prototype = new A();   
  3. new B().hello();  

q就?JavaScript 的所谓“扎쀝了Q其实质是属性的拯Q这里利用了 prototype 来实现。如果不?prototypeQ那q循环了,效果是一L。所谓“多重扎쀝,自然是到处拯了?br />
JavaScript 中面向对象的原理Q就是上面这些了。自始至l我都没提到“类”的概念Q因?JavaScript 本来没有“类”这个东ѝ面向对象可以没有类吗?当然可以。先有类Q然后再有对象,q本来就不合理,因ؓcL来是从对象中归纳出来的,先有对象再有c,q才合理。像下面q样的:

Js代码
  1. var o = {}; // 我发C一个东ѝ?  
  2. o.eat = function(){return "I am eating."}  // 我发现它会吃Q?  
  3. o.sleep = function(){return "ZZZzzz..."}  // 我发现它会睡Q?  
  4. o.talk = function(){return "Hi!"// 我发现它会说话;   
  5. o.think = function(){return "Hmmm..."// 我发现它q会思考?  
  6.   
  7. var Human = new Function(); // 我决定给它v名叫“h”?  
  8. Human.prototype = o; // q个东西׃表了所有“h”的概念?  
  9.   
  10. var h = new Human(); // 当我发现其他同它一L东西Q?  
  11. alert(h.talk()) // 我就知道它也是“h”了Q?/font>