[英]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.