改造javascript,改造美人魚體驗

js-改變this指向的幾種方法

javaScript 為我們專門提供了一些函數(shù)方法來幫我們更優(yōu)雅的處理函數(shù)內(nèi)部 this 的指向問題,常用的有 bind()、call()、apply() 三種方法

創(chuàng)新互聯(lián)服務(wù)項目包括昌邑網(wǎng)站建設(shè)、昌邑網(wǎng)站制作、昌邑網(wǎng)頁制作以及昌邑網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,昌邑網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到昌邑省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

call() 方法調(diào)用一個對象。簡單理解為調(diào)用函數(shù)的方式,但是它可以改變函數(shù)的 this 指向。

fun.call(thisArg, arg1, arg2, ...)

thisArg:在 fun 函數(shù)運行時指定的 this 值

arg1,arg2:傳遞的其他參數(shù)

返回值就是函數(shù)的返回值,因為它就是調(diào)用函數(shù)

因此當我們想改變 this 指向,同時想調(diào)用這個函數(shù)的時候,可以使用 call,比如繼承

fun.apply(thisArg, [argsArray])

thisArg:在fun函數(shù)運行時指定的 this 值

argsArray:傳遞的值,必須包含在數(shù)組里面

apply 主要跟數(shù)組有關(guān)系,比如使用 Math.max() 求數(shù)組的最大值

bind() 方法不會調(diào)用函數(shù)。但是能改變函數(shù)內(nèi)部this 指向

fun.bind(thisArg, arg1, arg2, ...)

thisArg:在 fun 函數(shù)運行時指定的 this 值

arg1,arg2:傳遞的其他參數(shù)

返回由指定的 this 值和初始化參數(shù)改造的原函數(shù)拷貝

因此當我們只是想改變 this 指向,并且不想調(diào)用這個函數(shù)的時候,可以使用 bind

相同點:

都可以改變函數(shù)內(nèi)部的this指向.

區(qū)別點:

1.call 和 apply 會調(diào)用函數(shù), 并且改變函數(shù)內(nèi)部this指向.

2.call 和 apply 傳遞的參數(shù)不一樣, call 傳遞參數(shù) aru1, aru2..形式 apply 必須數(shù)組形式[arg]

3.bind 不會調(diào)用函數(shù), 可以改變函數(shù)內(nèi)部this指向.

主要應(yīng)用場景:

1.call 經(jīng)常做繼承.

2.apply 經(jīng)常跟數(shù)組有關(guān)系. 比如借助于數(shù)學對象實現(xiàn)數(shù)組最大值最小值

3.bind 不調(diào)用函數(shù),但是還想改變this指向. 比如改變定時器內(nèi)部的this指向。

Javascript在嵌入式的應(yīng)用場景有哪些

Javascript是最流行的腳本語言之一,也是Web的主要技術(shù)之一,這樣的優(yōu)勢導致它在嵌入式領(lǐng)域也有一定的作用

飛利浦出過一套 Pronto 智能中控設(shè)備系列,可以通過編寫代碼自定義界面和邏輯,控制繼電器、串口、紅外等設(shè)備,適用于家庭和辦公室自動化控制。

制設(shè)備分為中控主機和控制板(即帶彩色觸摸屏的遙控器),本身是嵌入式系統(tǒng),但控制板中存儲的自定義邏輯代碼就是使用改造過的Javascript腳本規(guī)

范。為家庭或安裝好被控制的設(shè)備以后,只需通過必要連線或局域網(wǎng)將中控主機與被控設(shè)備連通,再將電腦上編寫好的腳本和配置文件通過USB口傳到控制板上,

就可以使用了。電腦端編輯是半圖形化半文本式的界面(類似Visual Studio和 Xcode

的使用),代碼編寫又不難,因此上手非常容易。編寫界面和最終的控制板使用體驗都很好。

“ProntoScript

是一種基于 JavaScript 的軟件工具,它使安裝人員能夠創(chuàng)建動態(tài)的雙向用戶界面,利用全圖形的靈活性對 RS232 或 IP

進行系統(tǒng)控制。該工具集成在 ProntoEdit Professional 軟件中。與 Pronto 合作伙伴預建的 ProntoScript

模塊可通過網(wǎng)站獲得。對于典型安裝,您可以選擇使用標準安裝參考文件,重新分配各個組件即可。更高級的 JavaScript

編程人員能夠創(chuàng)建他們自己的 ProntoScript 模塊,以便進行全面的系統(tǒng)操作和反饋?!?/p>

可惜不知為何沒有后續(xù)研發(fā)新產(chǎn)品。

在未來,JavaScript有可能一統(tǒng)天下嗎

JS無法自主控制線程,即便NODE.JS,其本身也是C語言的實現(xiàn),只是使用JS間接調(diào)用C語言去執(zhí)行而已。因此JS得觸角,是無法觸及高性能應(yīng)用的。

從語言本身,與其認為JS可以一統(tǒng)天下,C#一統(tǒng)天下的可能性似乎更高一些。由于Unity3D的存在,可以一次開發(fā),便發(fā)布到21種平臺。windows,linux,mac自然不在話下,還包括PS4,3DS,SWITCH,XBOX等游戲機。。各種VR,AR設(shè)備,以及WebGL。。只要WebGL逐漸普及,或H5的性能進一步提升,Unity便可直接生成前端頁面。。且性能非常棒。。連3D大型游戲都可以流暢運行。。

簡單說,JS的問題在語言本身,先天的缺陷,導致其很難通過后天的修復來彌補。除非徹底改造成編譯型靜態(tài)語言。。而像ES6那樣的小修小補,是根本無法從本質(zhì)上改良JS的。。也許要等到ES10以上的版本,JS才能真正勝任高性能開發(fā)

而C#本身性能就很棒,問題在于前端平臺的性能不足,目前的H5性能依然無法滿足C#的需要,而WEBGL普及度偏低。。顯然C#要實現(xiàn)“無所不能”,比JS容易的多。只要前端平臺的性能再稍加提升,也許僅僅需要HTML5.2或HTML5.3,或者各大瀏覽器都默認開啟WEBGL,這一切就可能成為現(xiàn)實。

歸根結(jié)底,JS也許有一天可以"無所不能",但永遠無法涉及高性能的應(yīng)用,而到時候“無所不能”的語言,也不僅僅只有JS一種....未來的WEB前端,將是由引擎直接生成webassembly,并不是靠敲JS實現(xiàn)的。

當前題目:改造javascript,改造美人魚體驗
分享路徑:http://muchs.cn/article34/phegpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、自適應(yīng)網(wǎng)站小程序開發(fā)、網(wǎng)站制作、做網(wǎng)站

廣告

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

小程序開發(fā)