1 它擁有對(duì)象,可以包含數(shù)據(jù)和處理數(shù)據(jù)的方法。對(duì)象可以包含其它對(duì)象。他沒(méi)有類(在javascript2.0真正實(shí)現(xiàn)之前),但它卻有構(gòu)造器可以做類能做的事,包括扮演變量和方法的容器和角色。他沒(méi)有基于類的繼承,但它有基于原型的繼承。兩個(gè)建立對(duì)象系統(tǒng)的方法是通過(guò)繼承和通過(guò)聚合。javaScript兩個(gè)都有。
2 一些評(píng)價(jià)說(shuō)javascript不是真正面向?qū)ο蟮囊驗(yàn)樗荒芴峁┬畔⒌碾[藏。也就是,對(duì)象不能有私有變量和私有方法:所有的成員都是公共的。但隨后有人證明了javaScript對(duì)象可以擁有私有變量和私有方法。另外還有批評(píng)說(shuō)javascript不能提供繼承,但隨后有人證明了javascript不僅能支持傳統(tǒng)的繼承還能應(yīng)用其他的代碼復(fù)用模式。
3 說(shuō)javascript是一種基于對(duì)象的語(yǔ)言,是一種正確而略顯保守的判斷,而說(shuō)javascript不面向?qū)ο?,在我看?lái)則是錯(cuò)誤的認(rèn)知,事實(shí)上有充足的理由證明javaScript是一種面向?qū)ο蟮恼Z(yǔ)言,只是與傳統(tǒng)的基于類的面向?qū)ο笙啾?,javaScript有它與眾不同的地方,這種獨(dú)特性我們稱它為基于原型的面向?qū)ο蟆?/P>
-----------------------------------------
因?yàn)閖s是弱類型語(yǔ)言.不像c++,C#這類型語(yǔ)言!他不支持函數(shù)方法重載.你之前寫(xiě)一個(gè)方法.后面再寫(xiě)一個(gè)相同名字的方法他默認(rèn)會(huì)把上一個(gè)方法覆蓋掉!這種情況和PHP中相同!
他不像是C#等語(yǔ)言支持函數(shù)重載.根據(jù)不同的參數(shù).返回值調(diào)用不同的方法!
關(guān)于JS是不是面向?qū)ο?他不完全是面向?qū)ο?他也可以寫(xiě)成類,方法,屬性.但是和其它的語(yǔ)言稍有不同!比如
var cls={
my:{a:0},
init:function()
{
alert(this.my.a);
}
};
window.onload=function()
{
cls.init();
}
調(diào)用cls.init();
這就是他的類,但是缺少了好多面向?qū)ο蟮囊恍┨匦?樓上說(shuō)的很清楚!所以說(shuō)他不是完全面向?qū)ο?/P>
面向?qū)ο笾皇且环N思路一種解決問(wèn)題的思路!
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注