结合两个 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 || "";
)
相关文章:
- 组合两个javascript函数
- 比较包含多个值对的两个JavaScript数组
- 为什么这两个JavaScript函数调用具有相同的“;这个“;价值
- 无法延迟iPhone/iPad上的两个JavaScript操作
- 比较IF条件下的两个javascript数值
- 我可以在两个javascript文件之间传递一个字符串吗?
- 为标记调用href中的两个javascript函数
- 如何执行两个javascript函数
- 两个javascript网络工作者连续打印输出-为什么不同时打印呢
- 如何手动绑定两个javascript文件
- 两个javascript脚本的非独立性
- 合并两个Javascript数组,一次合并三个元素
- 为同一标记中的两个不同事件调用两个javascript方法
- 将两个Javascript函数组合到一个窗口中.nload不起作用
- 结合两个JavaScript函数
- IE可以同时执行两个JavaScript函数吗?
- 两个 JavaScript 文件,哪个方法首先调用
- 在 html 中的两个 JavaScript 之间传递值
- 两个 JavaScript 对象具有相同的属性实现方式,但原型不同
- 如何将两个Javascript函数合二为一