<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    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 久久伊人精品青青草原日本| 精品久久久久久久免费人妻 | 亚洲Av永久无码精品一区二区| 四库影院永久四虎精品国产| 精品无码国产污污污免费网站国产| 国产A√精品区二区三区四区| 国产精品萌白酱在线观看| 久久精品丝袜高跟鞋| 亚洲精品精华液一区二区| 亚洲国产精品福利片在线观看| 久久er这里只有精品| 青草国产精品视频。| 一本一本久久a久久综合精品蜜桃 一区二区亚洲精品精华液 | 国产精品无码素人福利免费| 2022久久国产精品免费热麻豆| 精品久久久久久无码中文野结衣| 婷婷国产成人精品一区二| 亚洲精品无码aⅴ中文字幕蜜桃| 视频精品一区二区三区| 国产女人精品视频国产灰线| 亚洲欧美精品午睡沙发| 一区二区三区四区精品视频| 国产亚洲精品国产福利在线观看 | 久久久久精品国产亚洲AV无码| 国产精品无码制服丝袜| 久久精品aⅴ无码中文字字幕重口| 国产精品深爱在线| 亚洲精品无码专区在线| 精品国内在视频线2019| 亚洲精品免费视频| 久久精品视频免费看| 99视频在线观看精品| 国产Av一区二区精品久久| 精品女同一区二区三区免费站| 黑猫福利精品第一视频| 精品露脸国产偷人在视频7| 热久久视久久精品18| 亚洲精品免费在线| 91天堂素人精品系列网站| 国产在线91精品入口| 香港aa三级久久三级老师2021国产三级精品三级在 |