javascript - "this"原型(prototype)内未定义

标签 javascript node.js

我花了一个多小时。

这段代码有什么问题?!

StudentController.js:

function StudentController() {
    this.studentService = {};
};

StudentController.prototype.findAll = function(req, res){
    this.studentService.something();
};

module.exports = StudentController;

app.js

var StudentController = require('./application/StudentController');
var studentController = new StudentController();
app.get('/students', studentController.findAll);

我得到:

类型错误:无法调用未定义的“某物”方法

为什么“studentService”未定义?

非常感谢!

最佳答案

您的函数未在正确的上下文中调用。

相反,请尝试:

app.get('/students', studentController.findAll.bind(studentController));

关于javascript - "this"原型(prototype)内未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23975350/

相关文章:

javascript - 如何将添加的文本保存到 Jquery 文本区域中的复选框值?

javascript - 轻松解决冲突

javascript - 使用 puppeteer API 生成 pdf 时无法捕获图像

node.js - Mongoose 模型 update() 与 save()

javascript - Date 构造函数的 timeStamp 参数中的时区导致 'invalid date' 错误

javascript - Underscore.js _.isObject = function (obj) { return obj === Object(obj); };

javascript - 通过前缀和后缀运算符递增数字

javascript - 使用相同的javascript函数来更改多个图像上传的预览

node.js - 使用 Mocha 从单元测试进行电解质依赖注入(inject)

javascript - 语法错误: Unexpected token return