溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

es6靜態(tài)屬性和實(shí)例屬性的區(qū)別有哪些

發(fā)布時(shí)間:2022-04-13 14:07:54 來(lái)源:億速云 閱讀:251 作者:iii 欄目:web開(kāi)發(fā)

這篇文章主要介紹“es6靜態(tài)屬性和實(shí)例屬性的區(qū)別有哪些”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“es6靜態(tài)屬性和實(shí)例屬性的區(qū)別有哪些”文章能幫助大家解決問(wèn)題。

區(qū)別:1、靜態(tài)屬性是類(lèi)自身的屬性,只能在類(lèi)自身調(diào)用,而實(shí)例屬性是實(shí)例對(duì)象的屬性;2、實(shí)例對(duì)象無(wú)法調(diào)用靜態(tài)屬性,但類(lèi)可調(diào)用實(shí)例屬性;3、靜態(tài)屬性只有一種聲明方法,語(yǔ)法“類(lèi)名.屬性名=值”,而實(shí)例屬性有多種聲明方法,例類(lèi)中用“屬性名=值”定義。

本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

靜態(tài)的就是不會(huì)被實(shí)例繼承的,是屬于類(lèi)自身的,實(shí)例繼承不了,也調(diào)用不了,跟作用域一樣。

  • 靜態(tài)屬性:就是類(lèi)自身的屬性,只能在類(lèi)自身調(diào)用,實(shí)例對(duì)象是無(wú)法調(diào)用到靜態(tài)屬性的,只能類(lèi)自身調(diào)用,當(dāng)然子類(lèi)也可以調(diào)用父類(lèi)的靜態(tài)屬性;

  • 實(shí)例屬性:就是實(shí)例的屬性,實(shí)例對(duì)象可以調(diào)用的實(shí)例屬性,記住實(shí)例是無(wú)法調(diào)用類(lèi)的靜態(tài)屬性的,但是類(lèi)可以調(diào)用實(shí)例屬性;

聲明靜態(tài)屬性:

就和普通的Object添加屬性一樣,object.a = 值;(目前唯一一種方法);有人提議在類(lèi)內(nèi)部加static關(guān)鍵字,但是還沒(méi)實(shí)現(xiàn)

class F{};
F.b="父類(lèi)的靜態(tài)屬性";//給F類(lèi)加靜態(tài)方法

聲明靜態(tài)方法:在方法前加上static關(guān)鍵字

class Foo {
  static bar () {//靜態(tài)方法  靜態(tài)方法中的this指向類(lèi)本身而不是實(shí)例
    this.baz();
  }
  static baz () {//靜態(tài)方法
    console.log('hello');
  }
}
 
Foo.bar() // hello
new Foo().bar();//實(shí)例調(diào)用不了,會(huì)報(bào)錯(cuò)

聲明實(shí)例屬性:

1,在類(lèi)中定義

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

  }
}
 
//上面代碼中,myProp就是MyClass的實(shí)例屬性。在MyClass的實(shí)例上,可以讀取這個(gè)屬性。

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

class ReactCounter extends React.Component {
  constructor(props) {
    super(props);//可以讓子類(lèi)繼承
    this.state = {
      count: 0
    };
  }
}
 
//等價(jià)于
class ReactCounter extends React.Component {
  state = {
    count: 0
  };
}

靜態(tài)屬性和實(shí)例屬性的區(qū)別總結(jié):

  • 靜態(tài)屬性是類(lèi)自身的屬性,只能在類(lèi)自身調(diào)用;而實(shí)例屬性是實(shí)例對(duì)象的屬性,可以被實(shí)例對(duì)象調(diào)用。

  • 實(shí)例對(duì)象是無(wú)法調(diào)用到靜態(tài)屬性的,只能類(lèi)自身調(diào)用;而類(lèi)可以調(diào)用實(shí)例屬性。

  • 靜態(tài)屬性只有一種聲明方法,而實(shí)例屬性有多種聲明方法。

  • 實(shí)例屬性定義在實(shí)例上,可以在構(gòu)造函數(shù)的內(nèi)部的this上進(jìn)行定義,也可以在構(gòu)造函數(shù)實(shí)例化以后的實(shí)例上進(jìn)行定義。

    靜態(tài)屬性,定義在構(gòu)造函數(shù)之上的屬性。可通過(guò)構(gòu)造函數(shù)直接訪問(wèn)。

關(guān)于“es6靜態(tài)屬性和實(shí)例屬性的區(qū)別有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

es6
AI