簡體   English   中英

結合兩個javascript函數

[英]combining two javascript functions

組合以下功能有什么好處?

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()函數。

兩者之間有什么區別,有什么理由優先選擇另一個?

第二個。

如果newNote的范圍僅限於onload函數,則沒有理由弄臟全局范圍。


編輯

坦白說,沒關系。 如果綁定鍵盤事件,則該功能將保留在整個文檔范圍內。 因此,兩者都將是一件好事。

此外,SO中的問題更傾向於問題。 請嘗試https://codereview.stackexchange.com/

這可能主要基於觀點,但我會講第二點。
原因:

可讀性更高,維護更輕松

顯然,讀取和維護一個功能而不是兩個功能更容易,而且您將代碼完全放在一個位置。

不浪費資源

您可以在函數中創建所需的變量,完成后它們就會消失。

但是警告。

您應該知道應該避免某些事情。 例如,如果您的newNote函數隨着時間的推移將需要越來越多的參數,則可以考慮更改范圍,並可能將其保留在該函數之外,以避免具有(例如)十幾個參數的函數,因為您只是失去了上面列出的好處。

PS:我認為您描述的第二個代碼有一些錯誤。 除非您只是這樣寫,否則說明您打算做什么。 (我說的是textarea.value = txt || "";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM