<address id="zhpbl"></address>
<noframes id="zhpbl">
<address id="zhpbl"><form id="zhpbl"><th id="zhpbl"></th></form></address>

    <em id="zhpbl"></em>

      <address id="zhpbl"><th id="zhpbl"><progress id="zhpbl"></progress></th></address>
      更多精彩內容,歡迎關注:

      視頻號
      視頻號

      抖音
      抖音

      快手
      快手

      微博
      微博

      js class類

      文檔

      js class類

      js class類是指:class(類)是ECMAScript6中新增的關鍵字,專門用于創建“類”的,“類”可被用于實現邏輯的封裝,開始增加了“類”相關的語法,使得JavaScript中的面向對象實現方式更加標準。
      推薦度:
      導讀js class類是指:class(類)是ECMAScript6中新增的關鍵字,專門用于創建“類”的,“類”可被用于實現邏輯的封裝,開始增加了“類”相關的語法,使得JavaScript中的面向對象實現方式更加標準。

      js class類是什么呢?一起來看下吧:

      class(類)是ECMAScript6中新增的關鍵字,專門用于創建“類”的,“類”可被用于實現邏輯的封裝。傳統面向對象的編程序語言都是“類”的概念,對象都是由類創建出來,然而早期JavaScript中是沒有類的,面向對象大多都是基于構造函數和原型實現的,但是ECMAScript6規范開始增加了“類”相關的語法,使得JavaScript中的面向對象實現方式更加標準。

      類的聲明

      定義一個類的一種方法是使用一個類聲明,即用帶有class關鍵字的類名(這里“Rectangle”)函數名和實例化構造名相同且大寫(非強制)

      class?Person?{
      ?constructor(x,?y)?{
      ????this.x?=?x
      ????this.y?=?y
      ??}
      }

      函數聲明和類聲明之間的一個重要區別是函數聲明會提升,類聲明不會。需要先進行聲明,再去訪問,否則會報錯

      var?person=?new?Person()
      class?Person?{
      ?constructor(x,?y)?{
      ????this.x?=?x
      ????this.y?=?y
      ??}
      }
      //?Personis?not?defined

      類聲明不可以重復

      class?Person?{}
      class?Person?{}
      //?TypeError?Identifier?'Person'?has?already?been?declared

      類必須使用 new 調用,否則會報錯。這是它跟普通構造函數的一個主要區別,就是后者不用 new 也可以執行

      class?Person?{
      ?constructor(x,?y)?{
      ????this.x?=?x
      ????this.y?=?y
      ??}
      }
      Person()
      //?TypeError?Class?constructor?Person?cannot?be?invoked?without?'new'

      類表達式(類定義)

      類表達式可以是被命名的或匿名的

      /*?匿名類?*/?
      let?Person?=?class?{
      ??constructor(x,?y)?{
      ????this.x?=?x
      ????this.y?=?y
      ??}
      }
      /*?命名的類?*/?
      let?Person?=?class?Person?{
      ??constructor(x,?y)?{
      ????this.x?=?x
      ????this.y?=?y
      ??}
      }

      類的方法

      constructor 方法

      constructor 方法是類的默認方法,通過 new 命令生成對象實例時,自動調用該方法(默認返回實例對象 this)。一個類必須有 constructor 方法,如果沒有顯式定義,一個空的 constructor 方法會被默認添加。一個類只能擁有一個名為 “constructor” 的特殊方法,如果類包含多個 constructor 的方法,則將拋出 一個 SyntaxError 。

      class?Person?{
      ???constructor(x,?y)?{
      ????this.x?=?x????//?默認返回實例對象?this
      ????this.y?=?y
      ??}
      ??toString()?{
      ????console.log(this.x?+?',?'?+?this.y)
      ??}
      }

      注意:

      1、在類中聲明方法的時候,方法前不加 function 關鍵字

      2、方法之間不要用逗號分隔,否則會報錯

      3、類的內部所有定義的方法,都是不可枚舉的(non-enumerable)

      4、一個類中只能擁有一個constructor方法

      靜態方法

      靜態方法可以通過類名調用,不能通過實例對象調用,否則會報錯

      class?Person?{
      ????static?sum(a,?b)?{
      ????????console.log(a?+?b)
      ????}
      }
      var?p?=?new?Person()
      Person.sum(1,?2)??//?3
      p.sum(1,2)?????//??TypeError?p.sum?is?not?a?function

      原型方法

      類的所有方法都定義在類的 prototype 屬性上面,在類的實例上面調用方法,其實就是調用原型上的方法

      原型方法可以通過實例對象調用,但不能通過類名調用,會報錯

      class?Person?{
      ?constructor()?{
      ??//?默認返回實例對象?this
      ?}
      ????sum()?{
      ?????
      ????}
      ????toString()?{
      ?????console.log('123456')
      ???}
      }
      //?給?Person?的原型添加方法
      Person.prototype.toVal?=?function()?{
      ?console.log('I?am?is?toVal')
      }
      //?等同于
      Person.prototype?=?{
      ??constructor()?{},
      ??sum()?{},
      ??toString()?{}
      }
      var?p?=?new?Person()
      p.toString()???????//?123456
      p.toVal()??????????//?I?am?is?toVal
      Person.toString()??//?TypeError?Person.toStringis?not?a?function
      Person.toVal()??//?TypeError?Person.toVal?is?not?a?function

      實例方法

      實例方法也可以通過實例對象調用,但同樣不能通過類名調用,會報錯

      class?Person?{
      ????constructor()?{
      ????????this.sum?=?function(a,?b)?{
      ????????????console.log(a?+?b)
      ????????}
      ????}
      }
      var?p?=?new?Person()
      p.sum(1,2)???????//?3
      Person.sum(1,2)??//?TypeError?Person.sum?is?not?a?function

      以上就是小編今天的分享,希望可以幫助到大家。

      文檔

      js class類

      js class類是指:class(類)是ECMAScript6中新增的關鍵字,專門用于創建“類”的,“類”可被用于實現邏輯的封裝,開始增加了“類”相關的語法,使得JavaScript中的面向對象實現方式更加標準。
      推薦度:
      為你推薦
      資訊專欄
      熱門視頻
      相關推薦
      python中strip函數的用法 getclass方法 python中find函數的用法 java反射獲取屬性值 vue 調用子組件方法 python的range函數用法 js set去重 vue使用jquery python skimage armoury crate打不開 java process deque java linux 格式化u盤 js讀取文件 python 交集 object 轉list object轉bigdecimal java get和set方法 python中get函數用法 js set方法 mysql time類型 python中sorted函數的用法 cad的基本命令 ubuntu卸載mysql js獲取隨機數 opencv安裝教程python python numpy教程 js獲取日期 python tkinter教程 java reentrantlock c語言struct用法 字符轉換成ascii碼 js date加一天 vue動態綁定style spring boot mysql配置 python 排序算法 python字典按值的大小排序 python 列表添加 python讀取json并解析 debug error怎么解決
      Top 少妇高潮太爽了在线视频