1 它擁有對象,可以包含數據和處理數據的方法。對象可以包含其它對象。他沒有類(在javascript2.0真正實現之前),但它卻有構造器可以做類能做的事,包括扮演變量和方法的容器和角色。他沒有基于類的繼承,但它有基于原型的繼承。兩個建立對象系統的方法是通過繼承和通過聚合。javaScript兩個都有。
2 一些評價說javascript不是真正面向對象的因為它不能提供信息的隱藏。也就是,對象不能有私有變量和私有方法:所有的成員都是公共的。但隨后有人證明了javaScript對象可以擁有私有變量和私有方法。另外還有批評說javascript不能提供繼承,但隨后有人證明了javascript不僅能支持傳統的繼承還能應用其他的代碼復用模式。
3 說javascript是一種基于對象的語言,是一種正確而略顯保守的判斷,而說javascript不面向對象,在我看來則是錯誤的認知,事實上有充足的理由證明javaScript是一種面向對象的語言,只是與傳統的基于類的面向對象相比,javaScript有它與眾不同的地方,這種獨特性我們稱它為基于原型的面向對象。
-----------------------------------------
因為js是弱類型語言.不像c++,C#這類型語言!他不支持函數方法重載.你之前寫一個方法.后面再寫一個相同名字的方法他默認會把上一個方法覆蓋掉!這種情況和PHP中相同!
他不像是C#等語言支持函數重載.根據不同的參數.返回值調用不同的方法!
關于JS是不是面向對象.他不完全是面向對象,他也可以寫成類,方法,屬性.但是和其它的語言稍有不同!比如
var cls={
my:{a:0},
init:function()
{
alert(this.my.a);
}
};
window.onload=function()
{
cls.init();
}
調用cls.init();
這就是他的類,但是缺少了好多面向對象的一些特性.樓上說的很清楚!所以說他不是完全面向對象
面向對象只是一種思路一種解決問題的思路!
新聞熱點
疑難解答