Javascript 採用基於原型的物件導向程式設計是出於效能的考慮嗎?

時間 2021-06-06 19:46:54

1樓:

跟效能的關係應該不大。

js裡面一切都是物件,類(函式)也是物件,並且都是動態的,任何乙個類都有可能被使用者改動。如果不設計這麼乙個基於prototype的鏈式檢索結構,還能怎麼做?我想不出還有別的好方法可以實現型別系統的同時不損失js的動態靈活性。

設想一下js如果使用乙個c++那樣的型別系統,會有多麼笨拙?

並且,雖然我沒有用過特別老版本的js,但是我個人的體會是:型別系統不是js的基本特性,它更像是在js核心功能之上實現的語法工具。我的看法,js的核心,除去最基本的值型別和邏輯控制,就是那個叫object的東西,說白了就是個hash表嘛。

然後函式本身也被設計成了hash表,只不過有乙個叫「()」的鍵實現執行函式功能。而後面的型別系統,像乙個補丁一樣,是在這樣的基礎設施之上實現的。

如果我們面對同樣的基礎設施,我們會怎麼做出乙個型別系統?可以參考iup類庫的設計,它使用c語言實現了乙個hash表,然後在此之上實現了一套跟js類似的型別系統。

關於iup,可以參考這裡:http://www.

tecgraf.puc-rio.br/iup/

為什麼採用基於扭矩的發動機控制而不是其它?

chengfangYe 首先明確一點曲軸轉速不可以突變,但是單次噴油量可以瞬間調整!根據功率需求,再結合當前曲軸轉速首先計算噴油時刻,然後計算出扭矩進而知道單次迴圈噴油量。乘用汽車發動機轉速變化範圍大,發動機的工況表是以轉速,負荷組成的二維表。同一發動機曲軸轉速,不同扭矩需求反應不同發動機在同一曲軸...

請問基於作品的同人二設侵權嗎,例如原角色獸化的qq氣泡

蓬萊的樹海 商業化 以商業化或者盈利為目的 不以盈利為目的 這幾個東西的區分實際上是相當模糊的 同人你要從定義上硬說,它確實是不以盈利和商業化為目的的,但沒有商業化不等於沒有商業行為,因此在同人展販賣同人本等二創作品來獲利本身上確實是不以盈利為目的的.但不以盈利為目的就意味著賺不到錢?明顯不是,你要...

新澆樓板與原牆體圈樑連線採用植筋膠和電焊哪個好?

卡本科技 直接說結論,按照您說的情況,目前一般來說,我們通常使用植筋的方法來進行施工。在植筋技術推廣前,建築工程的連線主要通過破壞原有混凝土保護層,然後將新鋼筋與裸露出來的原鋼筋焊接牢固。這樣的方法雖然有效地保證新舊建築能夠共同受力,但是施工工程比較麻煩,而且在破壞原鋼筋保護層的過程中對整個建築物也...