js代码中可以有java的对象吗_js原型对象与Java类的区别
標簽:
在我學習Javascript的原型對象時,我總是不自覺地拿Java的類思想來做比較,時間久了,我漸漸認識到二者有巨大的不同。
首先,類是不能直接當方法來運行,它最簡便的方式是調用其靜態方法;而原型對象本身就是一個方法體,它可以直接運行。二者在構造對象的過程中,js可以扮演兩種角色,一個可以將原型對象當方法來使用,才接觸js時,都是以這種形式來使用,即萬物皆方法體,像c;另一個是模仿面向對象的特性,為原型對象定義屬性,運用構造器時,將構造器構造的對象的指針指通過原型鏈指向原型對象的屬性,從而實現面向對象編程的形式。其實,做個有趣的實驗,定義一個原型對象,為其定義一些屬性,也為其定義可自動執行的部分代碼,如:
function test(){
//定義兩個屬性
this.pro1="屬性1";
this.pro2="屬性2";
//再定義部分可自動執行的代碼
alert("原型對象中代碼被執行了!");
}
test(); //當方法體來用,可以執行內部代碼,但屬性無法訪問
alert(new test().pro1); //方法體在構造時內部代碼執行了一遍,并且實例對象通過原型鏈的生成可以訪問其中屬性
而這點,允許混雜的現象在Java類中是絕對不被允許的,這也可以體現為什么js是基于對象,而不能被稱為絕對規范的完全面向對象,與其說js“模仿”了面向對象的使用思想,我更傾向于說它是借用了面向對象的思想。如果一種新的優秀的編程思想被創造出來,js一樣能憑借它的靈活模仿出來,而那些強類型的編程語言很可能就只能。。。。。。
標簽:
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的js代码中可以有java的对象吗_js原型对象与Java类的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么python用不了中文_【TK例子
- 下一篇: java servlet init方法_