微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 在ES6类中共享函数之间的变量

我正在使用Node.js中的ES6语法.作为一个起点,我只是尝试创建一个配置并返回Express服务器的简单类 – 但不确定这在生产中是否合适.

我在访问其他函数中的类成员变量时遇到问题.看看下面的代码

import express from 'express'
import http from 'http'

const _server = null
const _app = null

class HttpServer {

    constructor (port) {
        this._port = port;

        if (this._app === null) {
            this._app = express()
        }

        if (this._server === null) {
            this._server = http.createServer(this._app)
        }

        return this._server
    }

    start (callback) {

        this._server.listen(this._port, (error) => {
            return callback(error)
        })
    }

}

export default HttpServer

构造函数似乎工作正常,但是当我调用start方法时,我得到一个错误,即变量this._server未定义.我认为this关键字可以访问变量.我已经尝试将此访问方法替换为使用HttpServer._server,但没有运气.任何提示或建议将不胜感激!

如果我犯了愚蠢的错误,请原谅我,在此之前我没有跳过ES6火车!

解决方法:

>必须删除检查null
>无需从构造函数返回任何内容

class HttpServer {

    constructor (port) {
        this._port = port
        this._app = express()
        this._server = http.createServer(this._app)
    }

    start (callback) {
        this._server.listen(this._port, (error) => {
            return callback(error)
        })
    }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐