ホームページ >ウェブフロントエンド >jsチュートリアル >私が最上位シンボルの &#function&# 宣言を好む理由 (しかし、もう使用しない)

私が最上位シンボルの &#function&# 宣言を好む理由 (しかし、もう使用しない)

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 06:18:021033ブラウズ

Why I Prefer

今日、私たちは仕事でのみアロー関数を使用することにしました。

私たちには共通の ESLint 構成があり、チームはこのルールをすべてのプロジェクトで統一することに投票しました。

そして正直に言うと、私はこの特定のルール

のファンではありません

個人的には...少なくとも トップレベルのシンボル に関しては、関数宣言の方が表現力が豊かだと感じます:

some-screen-of-my-app.tsx

import {} ...

export function SomeScreen(props: Props) {
  const { myContext } = useMyContext()
  const [state, setState] = useState()

  const doSomething = () => { ... }
  const handleSomething = () => { ... }

  return <>...</>
 }

function SomeInternalComponent() { ... }

これが私がコンポーネントを書くのに慣れている方法です。関数の宣言は小説の章のタイトルのように感じられます

function Chapter3(storySoFar: Props) {
   // where the Hero meets the Villain
}

しかし、チームのニーズは理解しています。モジュールの元の作成者によっては、最初のレベルで const () => が見つかる可能性があります。 {} または関数。

主な議論は、「アロー関数の方が読みやすい」ということです (これには私は同意しません)

import {} ...

const SomeInternalComponent = () => { ... }

export const SomeScreen = (props: Props) => {
  const { myContext } = useMyContext()
  const [state, setState] = useState()

  const doSomething = () => { ... }
  const handleSomething = () => { ... }

  return <>...</>
 }

私は私の好みをサポートするために技術的な利点を見つけようとしました...一部のオタク *ピティミニ* [ 何か小さいか重要ではない ] が私の利益にバランスをもたらしますが、私たちは全員が以下の点に同意します:

  • クラスなし (関数のみ)
  • グローバルなものはありません (最新のモジュール)
  • これはだめです

それぞれに大きな違いはありません。

詳細を調べる:

const foo = () => { ... }

  • 吊り上げ禁止
  • 関数の名前は変数の名前 ("foo") から派生します
  • foo=... のように後で上書きすることはできません
  • プロトタイプ オブジェクト foo.prototype を作成しません
  • コンストラクター new foo() として使用することはできません
  • 引数がありません
  • この値は、関数が宣言されている場所によって定義されます

関数 foo() { ... }

  • 吊り上げ
  • 関数名はobvです。
  • foo = ... のように上書きできます。
  • オブジェクトのプロトタイプ foo.prototype を作成します
  • new は次のように許可されます: new foo() (プロトタイプをリンクします)
  • この値は、関数の呼び出し方法によって定義されます

結局のところ、私はトップレベルコンポーネントの機能の優れた明瞭さを好みますが、多くの人々の意志が優先します。
冗談ですが、順応していきます。統一されたスタイルを持つことは、一貫したコードベースを維持するのに役立ちます。

???.


読んでいただきありがとうございます

以上が私が最上位シンボルの &#function&# 宣言を好む理由 (しかし、もう使用しない)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。