繁体   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