[英]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.