首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript.bind - ES5 Vs ES6

Javascript.bind - ES5 Vs ES6
EN

Stack Overflow用户
提问于 2016-07-17 06:11:01
回答 2查看 867关注 0票数 1

如何在ES6中使用bind?

在预ES6编码方式(我假设这是ES5)中,我会这样做:

代码语言:javascript
运行
复制
var app = {};
app.log = function(req, res) {
    var respond = this.respond.bind(this, req, res);
    return respond(400, 'no data received');
}

app.respond = function(req, res, status, message) {
    console.log(req); // hello
    console.log(status); // 400
    console.log(message); // no data received
}

app.log('hello');

但是我如何在ES6中做到这一点呢?

代码语言:javascript
运行
复制
export default function log (req, res) {
    var respond = this.respond.bind(this, req, res);
    return respond(400, 'no data received');
}

function respond (req, res, status, message) {
    console.log(req); 
    console.log(status); 
    console.log(message); 
}

当然,我会得到一个错误:

代码语言:javascript
运行
复制
TypeError: Cannot read property 'respond' of undefined
EN

Stack Overflow用户

回答已采纳

发布于 2016-07-17 06:37:43

在这种情况下,我认为你不必使用出口。做个课就行了。

代码语言:javascript
运行
复制
class App {

    log(req, res) {
        var respond = this.respond.bind(this , req , res);
        return respond(400, 'no data received');
    }

    respond(req, res, status, message) {
        console.log(req);
        console.log(status);
        console.log(message);
    }

}

var app = new App();
app.log('hello');
票数 -1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38418449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档