您好,登錄后才能下訂單哦!
這篇文章主要介紹“es6靜態屬性和實例屬性的區別有哪些”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“es6靜態屬性和實例屬性的區別有哪些”文章能幫助大家解決問題。
區別:1、靜態屬性是類自身的屬性,只能在類自身調用,而實例屬性是實例對象的屬性;2、實例對象無法調用靜態屬性,但類可調用實例屬性;3、靜態屬性只有一種聲明方法,語法“類名.屬性名=值”,而實例屬性有多種聲明方法,例類中用“屬性名=值”定義。
本教程操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。
靜態的就是不會被實例繼承的,是屬于類自身的,實例繼承不了,也調用不了,跟作用域一樣。
靜態屬性:就是類自身的屬性,只能在類自身調用,實例對象是無法調用到靜態屬性的,只能類自身調用,當然子類也可以調用父類的靜態屬性;
實例屬性:就是實例的屬性,實例對象可以調用的實例屬性,記住實例是無法調用類的靜態屬性的,但是類可以調用實例屬性;
聲明靜態屬性:
就和普通的Object添加屬性一樣,object.a = 值;
(目前唯一一種方法);有人提議在類內部加static關鍵字,但是還沒實現
class F{}; F.b="父類的靜態屬性";//給F類加靜態方法
聲明靜態方法:在方法前加上static關鍵字
class Foo { static bar () {//靜態方法 靜態方法中的this指向類本身而不是實例 this.baz(); } static baz () {//靜態方法 console.log('hello'); } } Foo.bar() // hello new Foo().bar();//實例調用不了,會報錯
聲明實例屬性:
1,在類中定義
class MyClass { myProp = 42; constructor(props) { console.log(this.myProp); // 42 this.name=props.name } } //上面代碼中,myProp就是MyClass的實例屬性。在MyClass的實例上,可以讀取這個屬性。
2,在constructor中定義(react中經典寫法)
class ReactCounter extends React.Component { constructor(props) { super(props);//可以讓子類繼承 this.state = { count: 0 }; } } //等價于 class ReactCounter extends React.Component { state = { count: 0 }; }
靜態屬性和實例屬性的區別總結:
靜態屬性是類自身的屬性,只能在類自身調用;而實例屬性是實例對象的屬性,可以被實例對象調用。
實例對象是無法調用到靜態屬性的,只能類自身調用;而類可以調用實例屬性。
靜態屬性只有一種聲明方法,而實例屬性有多種聲明方法。
實例屬性定義在實例上,可以在構造函數的內部的this上進行定義,也可以在構造函數實例化以后的實例上進行定義。
靜態屬性,定義在構造函數之上的屬性。可通過構造函數直接訪問。
關于“es6靜態屬性和實例屬性的區別有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。