Итак, если я запускаю $(".addButton").click(Task.requests.addTask);
по методу, указанному ниже:
addTask:function(aTask){
console.log(aTask);
if(typeof aTask === "undefined"){
aTask = {name:"New Task",desc:"none"};
}
console.log(aTask);
$.ajax({
url:"/tasks/data/tasks",
dataType:"json",
type:"POST",
data:aTask,
success: function(){
console.log("Added Successfully");
Task.requests.allTasks();
},
error: function(err){
console.error(err);
}
});
},
, я получаю
undefined /*(from the first console.log(aTask))*/
{name: "New Task", desc: "none"} /*(from the second console.log(aTask))*/
jquery-3.3.1.min.js:2 Uncaught TypeError: Cannot read property 'type' of undefined
at y.handle (jquery-3.3.1.min.js:2)
at i (jquery-3.3.1.min.js:2)
at jt (jquery-3.3.1.min.js:2)
at jt (jquery-3.3.1.min.js:2)
at jt (jquery-3.3.1.min.js:2)
at jt (jquery-3.3.1.min.js:2)
at Function.w.param (jquery-3.3.1.min.js:2)
at Function.ajax (jquery-3.3.1.min.js:2)
at HTMLButtonElement.addTask (tasks.js:67)
at HTMLButtonElement.dispatch (jquery-3.3.1.min.js:2)
в консоли.at HTMLButtonElement.addTask (tasks.js:67)
Будучи строкой $.ajax({
и запрос AJAX обрабатывается, как и ожидалось, с объектом, отправляемым правильно и отправляющим правильные данные: {name: "New Task", desc: "none"}
в API (в Chrome, в Firefox он умирает здесь).
Если я удаляю условное условие if(typeof aTask === "undefined"){
, установленное для обработки пустого параметра (который будет использоваться большую часть времени), и просто устанавливаю переменную aTask
без каких-либо условий, ошибка Cannot read property 'type' of undefined
исчезает.
Я чувствую, что упускаю что-то глупоеПочему я получаю сообщение об ошибке с добавленным условным оператором typeof?Переменная устанавливается ..