日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Dart之于JavaScript正如C#之于C++

【 10月12號外電頭條】Lars Bak——這位來自谷歌的工程師曾經(jīng)憑借其V8 JavaScript解釋程序顛覆了火狐瀏覽器的速度神話。如今根據(jù)他的說法,谷歌推出的全新Web開發(fā)語言Dart很可能與Smalltalk存在著種種相似之處。不過它似乎同時(shí)也在將Web發(fā)展引向一條與此前截然不同的另類道路。在今天于丹麥舉行的Web開發(fā)者大會上,來自谷歌及其旗下Chromium開源開發(fā)團(tuán)隊(duì)的成員們終于揭開了全新語言Dart的神秘面紗,谷歌同時(shí)承諾該語言將為Web編碼工作帶來全新的構(gòu)造方式。

要讓Dart正常運(yùn)作,我們需要部署一套全新的虛擬機(jī),這種要求無形中使其與Java、Adobe Flash以及微軟Silverlight天然形成了競爭關(guān)系。不過從體系結(jié)構(gòu)角度而言,Dart就目前來看將更多地依托于瀏覽器。

谷歌的計(jì)劃是意欲將Dart虛擬機(jī)打造為對瀏覽器現(xiàn)有JavaScript引擎的一種補(bǔ)充。換句話來說,它將把Dart代碼加以重組并生成功能相同的JavaScript代碼。盡管谷歌一直在回避討論Dart嵌入全部瀏覽器之中的可能性,但在今早發(fā)布的博文中,Bak明確指出在將Dart虛擬機(jī)整合到谷歌Chrome瀏覽器方面,“我們已經(jīng)有計(jì)劃探索這一方案。”

終于,我們迎來了類

Dart語言存在的意義是為JavaScript提供輔助功能,因?yàn)楹笳唠S著時(shí)間的推移,其在“開放式Web”中的分布式應(yīng)用程序方面已經(jīng)無法勝任功能上的核心角色。比起結(jié)構(gòu)化更徹底、面向?qū)ο筇匦愿鞔_的C#及Java,JavaScript工作起來總會帶來一些無法清除的累贅因素。而與諸如Python、Ruby以及D之類更為智能化的動(dòng)態(tài)語言相比,JavaScript又顯得比較啰嗦,無法迅速切入主題。

隨著Dart語言首部教程的問世,Bak及其架構(gòu)團(tuán)隊(duì)以JavaScript的基礎(chǔ)為起點(diǎn),向其中加入了大量關(guān)鍵性Java要素,并通過對翻譯程序潛在條件的改進(jìn)大大優(yōu)化了語言的整體簡潔性。

對于JavaScript而言,實(shí)際上存在著一些能夠使其更偏面向?qū)ο蟮念惡瘮?shù),而這些類函數(shù)所使用的正是關(guān)鍵字函數(shù)。我們可以對那些恰好具備屬性的函數(shù)進(jìn)行聲明,而該函數(shù)將作為一種類函數(shù)嵌入其中。不過這種處理方式的問題在于,該類函數(shù)本身并沒有得到重復(fù)調(diào)用,而是每次都以重新創(chuàng)建的形式出現(xiàn),因此將該類函數(shù)以綁定的方式添加至函數(shù)原型中才是上佳的解決辦法。當(dāng)然,我們也可以對通用實(shí)例進(jìn)行加值以實(shí)現(xiàn)對某種對象的聲明,這可能需要利用常量對內(nèi)部結(jié)構(gòu)加以定義。接下來,從常量中選取一個(gè),進(jìn)而為函數(shù)賦值的做法也就使得該函數(shù)在某種意義上具備了變量值?;蛘呶覀円部梢詫又颠M(jìn)行聲明,并使用整個(gè)函數(shù)的結(jié)果為其賦值,這就相當(dāng)于假設(shè)該函數(shù)是對象的惟一組成部分。

以上方法都不是特別理想。在V8以及Mozilla出品的TraceMonkey這些最新一代JavaScript引擎中,大部分的工作負(fù)載都是在將那些由不理想的指令所帶來的“垃圾代碼”轉(zhuǎn)化為少些混亂、多些嚴(yán)謹(jǐn)?shù)挠行虼a。

所以從理論角度出發(fā),運(yùn)行有Dart虛擬機(jī)的瀏覽器也許可以擺脫性能表現(xiàn)低下的噩夢,因?yàn)镴S翻譯程序所要處理的代碼已經(jīng)更為有序且易于理解。當(dāng)然這只是理論。

Dart重新將類的概念以Java程序員們最為熟悉的方式引入。其中幾項(xiàng)調(diào)整使得定義工作更為簡潔;舉例來說,反向指針可能會被用于成員函數(shù)的聲明(例如用 Ball.throw (this.distance)代替 Ball.throw (distance); this.distance = distance;)。而接口也將為那些通用于多個(gè)類的屬性及函數(shù)提供支持;一個(gè)類啟用一個(gè)接口,這不正是大家一直以來所期望的結(jié)果么。

至今仍不明確:事件的觸發(fā)

對那些始終關(guān)注Dart項(xiàng)目的JS開發(fā)人員們來說,其中一大戲劇性結(jié)構(gòu)變化也許會激起他們的廣泛反對。JavaScript函數(shù)通常是被粘貼于整個(gè)頁面當(dāng)中的,而且盡管其中某部分充當(dāng)?shù)氖莔ain()函數(shù),大多數(shù)函數(shù)仍然是由瀏覽器事件所觸發(fā),包括window.onload。而在Dart中,每個(gè)