簡體   English   中英

ES6 React-靜態方法與構造函數

[英]ES6 React - static method vs constructor

我遇到了一個“問題”,我不知道哪個是最佳選擇。

說我有以下課程

export default class A {
   constructor(){
       this.testMethod = function testMethod(){
           console.log('a')
       }
   }

   static testMethod2 = function() {
       console.log('B')
   }
}

現在我要擴展這堂課

class C extends A {
    fetch() {
        this.testMethod()
        A.testMethod2()      
    }            
}

在擴展它時,將其定義為靜態方法感覺很奇怪,我假設我正在擴展一個類的事實將允許我訪問其所有方法(ES5原型樣式)

我知道兩種方法都是正確的,但是在ES6 / React中做到這一點的最佳方法是什么? 這兩種方式或性能問題都有哪些警告?

我目前正在使用構造函數,因為它感覺像是正確的/預期的方式,但是我不能在另一個之上“合理化”。

所有這些都來自將airbnb eslint應用於我的代碼庫( http://eslint.org/docs/rules/class-methods-use-this

我假設我正在擴展一個類,這將允許我訪問其所有方法

您實際上可以做到。 只需調用C.testMethod2()而不是A.testMethod2()甚至使用this.constructor.testMethod2() )。

在原型上,甚至在構造函數內部,定義與特定實例無關的函數都是不好的做法,不要這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM