> However, if you’re using Babel (or create-react-app) to build your source, you have another option: setting arrow functions as class fields (or arrow function methods).<p>> This gives you the best of both worlds. You get the improved performance from only defining functions once, but you still get the simple method-like syntax.<p>i think this is wrong because class fields are evaluated in the constructor<p>i dislike the class fields proposal because it's confusing (as shown by the article) and adds little value (can already use a constructor) and lets you sprinkle the fields all over the class definition instead of having them in one place (the constructor)<p>also, how it makes own properties instead of prototype properties which would be consistent with how methods are already defined in the class body<p>only the static fields part of the proposal is good because it's useful (there's no constructor for static fields) and behaves as expected (no "own property vs prototype property" question to get wrong)