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

首頁 > 語言 > JavaScript > 正文

ES6 javascript中class靜態方法、屬性與實例屬性用法示例

2024-05-06 15:25:03
字體:
來源:轉載
供稿:網友

本文實例講述了ES6 javascript中class靜態方法、屬性與實例屬性用法。分享給大家供大家參考,具體如下:

類相當于實例的原型, 所有在類中定義的方法, 都會被實例繼承。 如果在一個方法前, 加上static關鍵字, 就表示該方法不會被實例繼承, 而是直接通過類來調用, 這就稱為“ 靜態方法”。

class Foo {  static classMethod() {    return 'hello';  }}Foo.classMethod() // 'hello'var foo = new Foo();foo.classMethod()// TypeError: foo.classMethod is not a function

上面代碼中, Foo類的classMethod方法前有static關鍵字, 表明該方法是一個靜態方法, 可以直接在Foo類上調用( Foo.classMethod()), 而不是在Foo類的實例上調用。 如果在實例上調用靜態方法, 會拋出一個錯誤, 表示不存在該方法。

父類的靜態方法, 可以被子類繼承。

class Foo {  static classMethod() {    return 'hello';  }}class Bar extends Foo {}Bar.classMethod(); // 'hello'

上面代碼中, 父類Foo有一個靜態方法, 子類Bar可以調用這個方法。
靜態方法也是可以從super對象上調用的。

class Foo {  static classMethod() {    return 'hello';  }}class Bar extends Foo {  static classMethod() {    return super.classMethod() + ', too';  }}Bar.classMethod();

靜態屬性

靜態屬性指的是 Class 本身的屬性, 即Class.propname, 而不是定義在實例對象( this) 上的屬性。

class Foo {}Foo.prop = 1;Foo.prop // 1

上面的寫法為Foo類定義了一個靜態屬性prop。

目前, 只有這種寫法可行, 因為 ES6 明確規定, Class 內部只有靜態方法, 沒有靜態屬性。

// 以下兩種寫法都無效class Foo {  // 寫法一  prop: 2    // 寫法二  static prop: 2}Foo.prop // undefined

ES7 有一個靜態屬性的提案, 目前 Babel 轉碼器支持。

這個提案對實例屬性和靜態屬性, 都規定了新的寫法。

(1) 類的實例屬性

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

class MyClass {  myProp = 42;  constructor() {    console.log(this.myProp); // 42  }}

上面代碼中, myProp就是MyClass的實例屬性。 在MyClass的實例上, 可以讀取這個屬性。

以前, 我們定義實例屬性, 只能寫在類的constructor方法里面。

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

上面代碼中, 構造方法constructor里面, 定義了this.state屬性。
有了新的寫法以后, 可以不在constructor方法里面定義。

class ReactCounter extends React.Component {  state = {    count: 0  };}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 靖宇县| 桂东县| 渝中区| 东兴市| 上高县| 化隆| 江川县| 永修县| 上思县| 巴里| 江陵县| 天长市| 武鸣县| 湄潭县| 金阳县| 镇远县| 璧山县| 云龙县| 舒兰市| 邢台县| 独山县| 临海市| 社会| 潮州市| 吉安市| 阜城县| 方城县| 延吉市| 合江县| 香格里拉县| 台江县| 浏阳市| 泾阳县| 汝南县| 惠来县| 甘孜| 河曲县| 汝城县| 北辰区| 油尖旺区| 三原县|