以下链式语句在JavaScript中是什么意思?

以下链式语句在JavaScript中是什么意思?,javascript,node.js,commonjs,Javascript,Node.js,Commonjs,我找到了这段代码,阅读起来有点困难: require('happy module') .login('storage', { id:7, type:'foo' })(a, b, function c (err) { return err }); 1) require('happymodule')是一个函数,它接受一个字符串参数并返回一个对象 2) 对于该对象,我调用login方法,并传递两个参数,一个字符串和一个对象 3) 它返回一个传递三个参数的函数 (a,b,函数c(err){返回

我找到了这段代码,阅读起来有点困难:

require('happy module')
    .login('storage', { id:7, type:'foo' })(a, b, function c (err) { return err });
1) require('happymodule')是一个函数,它接受一个字符串参数并返回一个对象

2) 对于该对象,我调用login方法,并传递两个参数,一个字符串和一个对象

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

这是正确的吗

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

是的,但仅因为
happymodule
modules决定导出一个对象,它才可以导出一个函数

2) 使用该对象,我调用login方法,并传递两个 参数、字符串和对象

是的,没错

3) 它返回一个传递三个参数的函数 (a,b,函数c(err){返回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;
});

是的…………凌乱,因为它写得凌乱,看起来更干净、更全面。这不是JS中最好的代码示例,但你做对了。谢谢你对要点进行了扩展。