欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

【cocos2d-x從c++到j(luò)s】08:JS腳本語言的優(yōu)勢(shì)與一些問題-創(chuàng)新互聯(lián)

優(yōu)勢(shì):

創(chuàng)新互聯(lián)是專業(yè)的江漢網(wǎng)站建設(shè)公司,江漢接單;提供成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行江漢網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

1.不需聲明,甚至匿名方式原地定義。編碼量少。

這一條在C++中尤其明顯,以綁定一個(gè)回調(diào)為例,需要聲明,定義,調(diào)用綁定,三處代碼。雖然C++11中支持lambda表達(dá)式,對(duì)于回調(diào)的寫法有很大改進(jìn)。但是其他地方依然蛋疼。

2.弱類型語言,一般情況下,不需關(guān)心實(shí)際類型。Debug時(shí)除外。

在使用C++這種強(qiáng)類型語言的開發(fā)中,尤其是寫功能代碼時(shí),類型檢查遠(yuǎn)不如想象中那么有用,很多時(shí)候反而是問題根源,編譯不通過時(shí),很大一部分時(shí)間是在對(duì)變量類型,由此還衍生出一些特殊技術(shù)手段,比如適配器模式等等。

使用JS這種弱類型語言,只要接口名稱能對(duì)上,那么在對(duì)象的函數(shù)被調(diào)用時(shí)就認(rèn)為是正確的。簡(jiǎn)單說,只要長得像某一類型就行了,不需要必須是某一類型。

C++11中auto關(guān)鍵字也可以提升編碼速度(和JS的var很類似,可以隨時(shí)無腦輸出),不過看了一下引擎附帶的幾個(gè)例子代碼,好像有濫用auto的趨勢(shì)。

3.腳本語言動(dòng)態(tài)擴(kuò)展能力強(qiáng),可以不必構(gòu)造很多臨時(shí)類型和消息類型。

比如,在大型游戲中,全局使用消息機(jī)制時(shí),C++可能用結(jié)構(gòu)體,自定義類,或者我們以前直接丟JSON對(duì)象過去。在JS里面就很簡(jiǎn)單了,直接扔JSON對(duì)象吧。

在運(yùn)行時(shí)可以動(dòng)態(tài)給一個(gè)對(duì)象添加函數(shù)和屬性,而不需要重新構(gòu)造新類和初始化。JSON源自JS,JSON是天然的消息對(duì)象,非常合適。當(dāng)然JSON有自身的缺點(diǎn),訪問父節(jié)點(diǎn)和兄弟節(jié)點(diǎn)不太方便。并且JSON的結(jié)構(gòu)和二維表沒法完全兼容,這是一直讓策劃和工具程序員頭痛的一個(gè)問題。

4.語法靈活,可以支持各種編碼方式。隨機(jī)應(yīng)變。

業(yè)界普遍認(rèn)為面向?qū)ο笤趫D像編程是最好的。但對(duì)于事件處理邏輯處理AI處理來說,面向?qū)ο髣t是羅嗦的要死。比如,我實(shí)在對(duì)觀察者模式提不起興趣,Qt中的信號(hào)槽機(jī)制優(yōu)雅的多。又比如我曾經(jīng)做了一個(gè)A*算法代碼,想改成好用的面向?qū)ο蠓绞剑l(fā)現(xiàn)很痛苦。

JS很靈活,適合什么樣的編碼方式,就用什么樣的方式。

5.在語言級(jí)別天生集成了兩種最有用的數(shù)據(jù)結(jié)構(gòu),向量和映射表。

記得在KJava時(shí)代,MIDP的里面只有很少的數(shù)據(jù)結(jié)構(gòu),里面就有向量和哈西表。這兩種是最為常用的。JS在語言層面提供了支持,編碼極其方便。

6.腳本語言無需編譯,大量節(jié)約了開發(fā)時(shí)間。

如果你在Mac上,并且開了虛擬機(jī)然后編譯VS的話,應(yīng)該有那個(gè)恐怖的按小時(shí)計(jì)算的編譯時(shí)間長度經(jīng)驗(yàn)。Clang雖然速度比VC快很多,但是每次如果clean一下然后編譯幾十上百個(gè)文件也需要若干分鐘。

一些問題:

1.太靈活,更容易出爛代碼。

2.調(diào)試問題與IDE問題。

目前在cocos2d-x領(lǐng)域,還缺乏好用的支持JS的IDE?,F(xiàn)在目前暫時(shí)還是用cocos2d-html5版本做調(diào)試(兩者的接口已經(jīng)高度一致化),未來會(huì)有基于c++的IDE做的JS調(diào)試插件(比如在Eclipse上面的)。

3.善變的this

this關(guān)鍵字絕對(duì)是JS里面的變形金剛。根據(jù)不同的上下文,經(jīng)常會(huì)變成其他東西。

這個(gè)經(jīng)常會(huì)和回調(diào)函數(shù)問題糾纏不清,如果再加上閉包,三合一,夠你喝一壺的。

4.閉包

閉包很強(qiáng)大,無限制傳參,抓取快照。

但是閉包本身的問題也不小,首先是閱讀和理解上的困難,面向?qū)ο蟮某绦騿T一上來很難理解這東西,從他們的角度看閉包的代碼也很丑。

還有就是效率問題,同事測(cè)了一下SpiderMonkey中的閉包在生成大對(duì)象時(shí)效率不太高。

目前在cocos2d-x前端開發(fā)中,為了防止出現(xiàn)問題,對(duì)于缺乏經(jīng)驗(yàn)的程序員,盡量不要使用閉包代碼。

我個(gè)人在回合制戰(zhàn)報(bào),生成動(dòng)畫里是用了一些閉包的,不過那是一次性代碼。

5.變量生命周期不明確

變量生命周期問題,因?yàn)椴恍枰暶鳎芏鄷r(shí)候也沒有特別明顯的初始化,并不能通過閱讀代碼明確知道,一個(gè)變量的生存周期,這是所有腳本語言和GC語言的特性,有些時(shí)候?qū)φ{(diào)試會(huì)形成麻煩。

6.原型繼承

難以理解的原型繼承。熟悉面向?qū)ο蟮娜艘话愣紝?duì)這個(gè)東西莫名其妙。

從靜態(tài)語言過度到動(dòng)態(tài)腳本語言,一般程序員會(huì)疑惑在幾個(gè)地方,this,閉包,原型繼承,以及如何靈活地使用腳本語言的動(dòng)態(tài)性進(jìn)行編碼,我觀察了一下,很多人寫JS像靜態(tài)語言,還是c++風(fēng)格或者Java風(fēng)格。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章題目:【cocos2d-x從c++到j(luò)s】08:JS腳本語言的優(yōu)勢(shì)與一些問題-創(chuàng)新互聯(lián)
文章出自:http://chinadenli.net/article4/cdhdie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站品牌網(wǎng)站制作、網(wǎng)站維護(hù)、做網(wǎng)站、網(wǎng)站營銷全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司