以下链接语句在JavaScript中意味着什么?

我发现这段代码,并且在阅读时遇到了麻烦:

require('happy module') .login('storage', { id:7, type:'foo' })(a, b, function c (err) { return err }); 

1)require('happymodule')是一个接受一个string参数并返回一个对象的函数。

2)使用该对象,我调用login方法,并传递两个参数,一个string和一个对象

3)它返回一个函数,我传递三个参数(a,b,函数c(err){return err});

它是否正确 ?

1)require('happymodule')是一个接受一个string参数并返回一个对象的函数。

是的,但只是因为happymodule模块决定导出一个对象,它可能已经导出了一个函数。

2)使用该对象,我调用login方法,并传递两个参数,一个string和一个对象

对,那是正确的

3)它返回一个函数,我传递三个参数(a,b,函数c(err){return err});

是的,这也是正确的!

这里写一点清洁剂:

 var happy = require('happymodule'); var login = happy.login('storage',{ id:7, type:'foo' }); login(a, b, function c(err){ return err }); 

它可以这样写,如果这是有道理的:

 var happy = require ('happyModule'); var login = happy.login; var loginConfig = { id: 7, type: 'foo' }; var useless = login('storage', loginConfig); useless(a, b, function(err) { return err; });