<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午夜国产精品无码中文字 | 国产精品高清尿小便嘘嘘| 国产成人精品无码一区二区三区| 国产精品久久免费| 久久精品国产亚洲麻豆| 动漫精品第一区二区三区| 国产精品麻豆高清在线观看| 日日噜噜噜噜夜夜爽亚洲精品| 好叼操这里只有精品| 亚洲国产成人精品青青草原| 国产成人精品综合久久久久| 精品不卡一区中文字幕| 国产va精品免费观看| 99精品国产在热久久无码| 国内少妇人妻偷人精品xxx| 国产精品剧情原创麻豆国产| 999国内精品永久免费视频| 日韩精品一区二区三区色欲AV| 久久99精品国产99久久6| 国产精品白丝喷水在线观看| 99视频精品全部在线观看| 亚洲成人精品久久| 亚洲热线99精品视频| 精品国产一级在线观看| 国产69精品久久久久妇女| 国产成人精品一区二区A片带套| 7m凹凸精品分类大全免费| 久久精品视频一区二区三区| 国产精品香蕉在线观看| 精品福利视频第一| 毛片亚洲AV无码精品国产午夜| 99香蕉国产精品偷在线观看| 精品熟女少妇av免费久久| 日本内射精品一区二区视频| 精品国产91久久久久久久| 国产在线91精品入口| 国产精品永久免费| 亚洲AV成人精品日韩一区18p| 国产精品香蕉成人网在线观看 | 日本加勒比久久精品| 国产精品国三级国产AV|