探討javascript是不是面向對象的語言
1 它擁有對象,可以包含數(shù)據(jù)和處理數(shù)據(jù)的方法。對象可以包含其它對象。他沒有類(在javascript2.0真正實現(xiàn)之前),但它卻有構造器可以做類能做的事,包括扮演變量和方法的容器和角色。他沒有基于類的繼承,但它有基于原型的繼承。兩個建立對象系統(tǒng)的方法是通過繼承和通過聚合。javaScript兩個都有。
2 一些評價說javascript不是真正面向對象的因為它不能提供信息的隱藏。也就是,對象不能有私有變量和私有方法:所有的成員都是公共的。但隨后有人證明了javaScript對象可以擁有私有變量和私有方法。另外還有批評說javascript不能提供繼承,但隨后有人證明了javascript不僅能支持傳統(tǒng)的繼承還能應用其他的代碼復用模式。
3 說javascript是一種基于對象的語言,是一種正確而略顯保守的判斷,而說javascript不面向對象,在我看來則是錯誤的認知,事實上有充足的理由證明javaScript是一種面向對象的語言,只是與傳統(tǒng)的基于類的面向對象相比,javaScript有它與眾不同的地方,這種獨特性我們稱它為基于原型的面向對象。
-----------------------------------------
因為js是弱類型語言.不像c++,C#這類型語言!他不支持函數(shù)方法重載.你之前寫一個方法.后面再寫一個相同名字的方法他默認會把上一個方法覆蓋掉!這種情況和PHP中相同!
他不像是C#等語言支持函數(shù)重載.根據(jù)不同的參數(shù).返回值調用不同的方法!
關于JS是不是面向對象.他不完全是面向對象,他也可以寫成類,方法,屬性.但是和其它的語言稍有不同!比如
var cls={
my:{a:0},
init:function()
{
alert(this.my.a);
}
};
window.onload=function()
{
cls.init();
}
調用cls.init();
這就是他的類,但是缺少了好多面向對象的一些特性.樓上說的很清楚!所以說他不是完全面向對象
面向對象只是一種思路一種解決問題的思路!
相關文章
event.X和event.clientX的區(qū)別分析
解釋一下event.X和event.clientX有什么區(qū)別?event.clientX返回事件發(fā)生時,mouse相對于客戶窗口的X坐標 event.X也一樣但是如果設置事件對象的定位屬性值為relative2011-10-10
詳談js中window.location.search的用法和作用
下面小編就為大家?guī)硪黄斦刯s中window.location.search的用法和作用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
javascript RadioButtonList獲取選中值
js獲取RadioButtonList值的代碼。2009-04-04
JavaScript基于ChatGPT實現(xiàn)打字機消息回復
ChatGPT 是一個基于深度學習的大型語言模型,處理自然語言需要大量的計算資源和時間,響應速度肯定比普通的讀數(shù)據(jù)庫要慢的多,本文介紹了ChatGPT打字機消息回復實現(xiàn)原理,感興趣的同學可以跟著小編一起學習2023-05-05

