0

以下の機能を組み合わせるメリットはありますか?

window.onload = function() {
  if (localStorage.getItem("txt")) {
    textarea.value = localStorage.getItem("txt");
    changeDocTitle(localStorage.getItem("filename"));
    isModified = true;
  } else {
    changeDocTitle(untitled);
  }
};

function newNote() {
  if (!isModified || dontSave()) {
    textarea.value = "";
    changeDocTitle(untitled);
  }
  textarea.focus();
}

結合後は次のようになります。

window.onload = function() {
  if (localStorage.getItem("txt")) {
    newNote(localStorage.getItem("txt"), localStorage.getItem("filename"));
  } else {
    newNote();
  }
};

function newNote(txt, filename) {
  if (!isModified || dontSave()) {
    textarea.value = txt || "";
    changeDocTitle(filename || untitled);
    if (textarea.value) {
      isModified = true;
    }
  }
  textarea.focus();
}
  • newNote()キーボードショートカットでも関数を呼び出します..

この 2 つの違いは何ですか? また、どちらかを優先する理由はありますか?

4

2 に答える 2

1

これは主に意見に基づくものかもしれませんが、私は 2 番目のものを使用します。
理由:

読みやすさの向上とメンテナンスの容易化

明らかに、2 つの関数よりも 1 つの関数の方が読みやすく維持しやすく、コードを 1 か所にまとめることができます。

資源を無駄にしない

関数で必要な変数を作成し、それが完了するとそれらは消えます。

ただし、警告します。

避けるべき特定の事柄があることを知っておく必要があります。たとえば、関数が時間の経過とともにますます多くの引数を必要とする場合は、スコープを変更することを検討し、おそらく関数の外に維持して、 (たとえば)newNoteダースの引数を持つ関数を使用しないようにすることができます。利点を失うだけだからです。上に挙げた。

PS: あなたが説明した 2 番目のコードにはいくつかのエラーがあると思います。あなたが何をしようとしているのかを説明するためにそのように書いたのでなければ。(私は話しているtextarea.value = txt || "";

于 2013-10-24T05:55:22.360 に答える