






















































看以上兩段代碼,估計(jì)很多人對(duì)后面的代碼熟悉,也這樣寫(xiě)了??伤麄儓?zhí)行結(jié)果是一樣的。如果你改變了javascript對(duì)象的原型對(duì)象后會(huì)有些區(qū)別。
在這我想提出以下幾個(gè)問(wèn)題:
??? a、javascript對(duì)象也是單根繼承的對(duì)象.但不是所有對(duì)象都繼承自O(shè)bject.如例子中的Date對(duì)象。
??? b、千萬(wàn)別亂定義Object.prototype原型對(duì)象。prototype.js中加了個(gè)extends被人說(shuō)了半天。但我們自己寫(xiě)類庫(kù)時(shí),千萬(wàn)別嘗試改Object的prototype。
??? c、別用javacript語(yǔ)言模仿java來(lái)寫(xiě)代碼。想上面的,需要一個(gè)person的“類”,并不是非需要定義一個(gè),注意javascript對(duì)象的屬性是可以隨意增加或刪除的。并不象java那樣在類中寫(xiě)死。
??? d、就上面兩段代碼有什么區(qū)別呢?可以簡(jiǎn)單的說(shuō)是person繼承了Object”類“。javascript中對(duì)象的繼承是用prototype來(lái)實(shí)現(xiàn)的,后面我們討論prototype原型對(duì)象。
??? e、那我們應(yīng)用的時(shí)候到底是否該自己定義自己的構(gòu)造函數(shù)(如person),還是直接使用Object呢?這是個(gè)復(fù)雜的問(wèn)題,我個(gè)人來(lái)說(shuō)喜歡多用Object.
發(fā)表于 2006-04-17 23:03 原創(chuàng)專欄 開(kāi)源學(xué)習(xí) 閱讀(1542) 評(píng)論(2) 編輯 收藏 所屬分類: javascript語(yǔ)言
alert(new Date() instanceof Object); //true
我覺(jué)得Date也是一個(gè)Object,只不過(guò)是Date有他自己的toString方法覆蓋了Object的toString方法。
我覺(jué)得需要是一個(gè)類的話就盡量讓它像一個(gè)類,而不要是隨便增加它的屬性。起碼代碼的可讀性和維護(hù)性比較好