【技術教程】javascipt開發RTSP/GB28181/RTMP視頻平臺時ES6中的class與繼承說明

我們做開發的總被認爲是一項枯燥的工作,但其實TSINGSEE青犀視頻的研發團隊每天在開發過程中都能夠學到不少知識,相互交流和帶動下,一方面豐富了自己的知識,另一方面也讓我們開發的平臺趨於完美。

我們很多視頻平臺都是用js搭建的,這就要求我們要了解原型的繼承,才能更好的代碼優化,讓代碼更加簡潔,實現多功能。ES6引入了class(類)這個概念,通過class關鍵字可以定義類該關鍵字的出現使得javascript在對象寫法上更加清晰,更像是一種面向對象的語言。在TSINGSEE青犀視頻搭建平臺的過程中,這個關鍵字是可以說是重要的一環。

96.png

下面來說下ES6 class繼承。我們將在本文說明在javascript中class繼承用到extends實現類的繼承關係。

首先實例代碼如下圖:

63.png

這樣就實現了簡單的javascript語法繼承關係,但是這個直接在瀏覽器是不能運行的,所以要使用Babel轉換成ES5語法。

經過Babel轉換的es5語法,如下圖:

64.png

其中 _inherits函數代碼如下圖:

65.png

具體的流程就是:

(1)首下執行_inherits(Student, _Person),建立和_Person的原型鏈關係;
(2)Object.setPrototypeOf(Student.prototype, _Person.prototype)‘’
(3)Object.setPrototypeOf(Student, _Person);
(4)然後調用_Person.call(this, name),更具_Person構造函數的返回值類型確定子構造函數的this的初始化_this;
(5)最終,更具子構造函數_this的值,並返回該值。



視頻平臺的開發永遠是個大工程,尤其是技術越來越進步的今天,更加需要我們去了解更多的東西來實現我們的需求。如果大家想了解我們目前已經上線的視頻平臺EasyNVR、EasyCVR、EasyGBS等,歡迎聯繫我們。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章