猿问

this的指向,下面的this有问题,该如何修改

class Handler {

    get(req, res) {

        let type = req.query.type

        this[type](req, res)

    }


    typeA(req, res) {

        res.send('hello a')

    }


    typeB(req, res) {

        res.send('hello b')

    }

}


let express = require('express')

let app = express()


let handler = new Handler()

app.use('/', handler.get)


拉丁的传说
浏览 415回答 1
1回答

宝慕林4294392

app.use('/', handler.get) 参数是一个函数, 在内部记录时并不会记录你的handler的上下文.按照 @qile222 的回答, 使用bind直接绑定函数的this指针就好, 或者app.use('/', function(){  return handler.get.apply(handler, arguments);})
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答