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()
};
window.onload=function()
{
}
呼叫cls.init();
這就是他的類,但是缺少了很多面向對象的一些特性.樓上說的很清楚!所以說他不是完全面向對象
物件導向只是一種思路一種解決問題的思路!