1. ホーム
  2. javascript

Javascript - 関数をオブジェクトに格納する - バッドプラクティス?[クローズド]

2023-10-15 04:19:11

質問

関数を単に定義するのではなく、オブジェクトに格納することは悪いコーディングプラクティスであると考えられていますか(したがって、グローバルに)?

考えてみてください。

1.

Foo = {
    bar: function() {
        alert("baz");
    }   
}

Foo.bar();

vs.

2.

function bar() {
    alert("baz");
}

bar();

確かに、2番目の例ではコードが少し少なくなるかもしれませんが、たくさんの関数を使い始めると、ごちゃごちゃしてきます。 私は、たとえば次のようにする方が、ずっと、ずっと、すっきりしていると思います。 Game.update() などとするほうが、ずっとすっきりします。もっと深くなると、たとえば Game.notify.admin(id) などのように深くなっていくと、さらにきれいなコードになります。

オブジェクトに関数を格納することによるデメリットはありますか?

どのように解決するのですか?

最初のアプローチが望ましいです。この方法では、グローバルスコープを汚染する代わりに、関数のスコープを明示的に定義することになります。最初のアプローチを使用することにデメリットはありません。あるのはプラス面だけです :-)

結論:関数を定義するには常に最初のアプローチを使用します。2番目の方法は90年代のJavaScriptのようなもので、過去にさかのぼって平和に休ませておき、適切なスコープを使用しましょう。