我试图变得更加熟悉Javascript中的回调函数。我创建了一个简单的应用程序,将新成员推送到开发团队。我正在尝试使用addDev函数作为回调实践。我收到错误:Uncaught TypeError: addDev is not a function

var devTeam = [];

function devMember(fName, lName, addDev){
    this.firstName = fName;
    this.lastName = lName;
    this.fullName = firstName + " " + lastName;
    addDev(fullName);
}

function addDev(member){
    devTeam.push(member);
    console.log(devTeam);
}

devMember('Jay', 'Spears');

最佳答案

这是因为您从未将addDev传递给devMember

尝试
    devMember('Jay','Spears',addDev);

即使已定义(提升)了addDev,但由于您同时将devMember的第三个参数调用为addDev,因此您将覆盖它。然后,在调用devMember('Jay', 'Spears')时,您不会传递任何内容作为第三个参数,因此在devMember的执行上下文中未定义该参数。

09-11 19:01