国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

es6中class類靜態(tài)方法,靜態(tài)屬性,實例屬性,實例方法的理解與

2024-05-06 15:44:30
字體:
供稿:網(wǎng)友

本文實例講述了es6中class類靜態(tài)方法,靜態(tài)屬性,實例屬性,實例方法。分享給大家供大家參考,具體如下:

es6新增了一種定義對象實例的方法,使用class關鍵字定義類,與class相關的知識點也逐步火熱起來,但是部分理解起來相對抽象,簡單對class相關的知識點進行總結(jié),更好的使用class。對于基本概念,請參見阮一峰老師的es6入門教程。本文主要總結(jié)class靜態(tài)相關。

關于類有兩個概念,1,類自身,;2,類的實例對象

總的來說:靜態(tài)的是指向類自身,而不是指向?qū)嵗龑ο?,主要是歸屬不同,這是靜態(tài)屬性的核心。

難點1:靜態(tài)方法的理解

class Foo { static classMethod() {  return 'hello'; }}

靜態(tài)方法使用:在方法前加上static關鍵字

為什么使用靜態(tài)方法:阻止方法被實例繼承,類的內(nèi)部相當于實例的原型,所有在類中直接定義的方法相當于在原型上定義方法,都會被類的實例繼承,但是使用static靜態(tài)方法定義的不會被實例繼承,而且可以被實例直接應用Foo.classMethod(),此時寫成new Foo.classMethod()會提示不存在此方法

靜態(tài)方法中this指向:this指向類而不是類的實例

class Foo { static bar () {  this.baz(); } static baz () {  console.log('hello'); } baz () {  console.log('world'); }}Foo.bar() // hello

繼承相關:靜態(tài)方法可以被子類繼承,也可以被super調(diào)用

難點2:靜態(tài)屬性的理解,以及和實例屬性的區(qū)別

理解了靜態(tài)的本質(zhì)就知道靜態(tài)屬性是class類自身的屬性

相對的實例屬性是指類的實例的屬性,調(diào)用時使用 new Foo().'屬性名'

定義實例屬性的方法:2種

類的實例屬性可以用等式,寫入類的定義之中

1,在類中定義

class MyClass { myProp = 42; constructor() {  console.log(this.myProp); // 42 }}//上面代碼中,myProp就是MyClass的實例屬性。在MyClass的實例上,可以讀取這個屬性。

2,在constructor中定義(react中經(jīng)典寫法)

class ReactCounter extends React.Component { constructor(props) {  super(props);  this.state = {   count: 0  }; }}
//等價于class ReactCounter extends React.Component { state = {  count: 0 };}

定義靜態(tài)方法,

1,就和普通的Object添加屬性一樣,object.a = a;(目前唯一一種方法)

缺點:老寫法的靜態(tài)屬性定義在類的外部。整個類生成以后,再生成靜態(tài)屬性。容易忽略

2,靜態(tài)屬性的提案: 相對于實例方法定義,在定義實例方法的前面加上static關鍵字,該方法未發(fā)布

class MyClass { static myStaticProp = 42; constructor() {  console.log(MyClass.myStaticProp); // 42 }}            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 白朗县| 凌云县| 宣武区| 探索| 宁波市| 新乐市| 南城县| 兴和县| 蕉岭县| 湘乡市| 原平市| 莱芜市| 左权县| 卢氏县| 东乌珠穆沁旗| 鄂州市| 芦溪县| 高邮市| 赤峰市| 兴业县| 佳木斯市| 海林市| 呼和浩特市| 黄冈市| 涟源市| 涿鹿县| 光山县| 教育| 通河县| 蕲春县| 同仁县| 闻喜县| 怀来县| 金湖县| 宁波市| 南溪县| 铁岭县| 恩平市| 和林格尔县| 汾西县| 宿州市|