壹些批評家說javascript不是真正面向對象的,因為它不能提供信息隱藏。也就是說,壹個對象不能有私有變量和私有方法:所有成員都是公共的。但是後來證明了javaScript對象可以有私有變量和私有方法。也有批評說javascript不能提供繼承,但後來證明javascript不僅可以支持傳統繼承還可以應用其他代碼重用模式。
說javascript是壹種基於對象的語言是正確且略顯保守的判斷,但說javascript不是面向對象的則是錯誤的認知。事實上,有充分的理由證明javaScript是壹種面向對象的語言,但與傳統的基於類的面向對象相比,javaScript有其獨特性,我們稱之為基於原型的面向對象。
-
因為js是弱類型語言,不像c++和C #!他不支持函數方法重載。如果妳之前寫了壹個方法,之後又寫了壹個同名的方法,他會默認覆蓋最後壹個方法!這種情況和PHP裏壹樣!
不像C#等支持函數重載的語言,他根據不同的參數和返回值調用不同的方法!
關於JS是不是面向對象,也不完全是面向對象。也可以寫成類、方法、屬性,但是和其他語言略有不同!例如
var cls={
我的:{a:0},
init:函數()
{
alert(this . my . a);
}
};
window.onload=function()
{
cls . init();
}
調用cls . init();
這是他的類,但是缺少很多面向對象的特性。樓上很清楚!所以他不是完全面向對象的。
面向對象只是壹種思維方式,壹種解決問題的方式!