在javascript中处理我的函数的更有效方法

时间:2017-05-17 20:55:09

标签: javascript

所以我用if语句得到了这两个函数,它们做同样的事情。

检查输入字段的值是否为空。 if(newTask.value === '')

var newTask = document.getElementById("new-task");

newTask.addEventListener("keyup", function(event) {
    event.preventDefault();
    if(event.keyCode == 13){
        if(newTask.value === ''){
            alert('Fill in a task.');
        } else{
            addTask(newTask.value);
        }
    }
});

newTaskBtn.onclick = function() {
    if(newTask.value === ''){
        alert('Fill in a task.');
    } else{
        addTask(newTask.value);
    }
};

使我的代码更有效率的推荐方法是什么?

  • 编写另一个只进行检查的函数。
  • 在函数中编写函数?

其他任何想法都非常受欢迎。

2 个答案:

答案 0 :(得分:1)

您可以编写一个执行任务检查的函数。例如:

var newTask = document.getElementById("new-task");
function checkTask(taskValue) {
 if(taskValue === ''){
    alert('Fill in a task.');
  } else{
    addTask(taskValue);
  }
}
newTask.addEventListener("keyup", function(event) {
    event.preventDefault();
    if(event.keyCode == 13){
       checkTask(newTask.value);
    }
});

newTaskBtn.onclick = function() {
   checkTask(newTask.value);
};

答案 1 :(得分:0)

你的代码很好。有一些重复,但两个函数都有不同的前提条件,因为密钥必须检查密钥。添加另一级函数调用将使代码的可读性降低。我只是改变结构以使用早期回报,如下所示:

var newTask = document.getElementById("new-task");

newTask.addEventListener("keyup", function(event) {
    event.preventDefault();
    if (event.keyCode !== 13) {
        return;
    }
    if (newTask.value === '') {
        alert('Fill in a task.');
        return;
    }
    addTask(newTask.value);
});

newTaskBtn.onclick = function() {
    if (newTask.value === '') {
        alert('Fill in a task.');
        return;
    }
    addTask(newTask.value);
};