我遇到了这段代码,我不明白它的作用:
const { LineClient } = require('messaging-api-line');
现在,当大括号内有多个变量时,我理解对象赋值语法,例如:
let o = {p: 42, q: true};
let {p, q} = o;
但const { LineClient }
和const LineClient
之间有什么区别?
答案 0 :(得分:2)
messaging-api-line
的包导出类似于this:
module.exports = {
Line,
LineClient,
};
所以,这样做:
const { LineClient } = require('messaging-api-line');
会将导出的LineClient
类公开给您的代码。要实例化LineClient
类,您只需执行const lc = new LineClient();
另一方面,这样做:
const LineClient = require('messaging-api-line');
会将整个导出的对象公开给您的代码。要实例化LineClient
类,您必须执行const lc = new LineClient.LineClient();
,这可能不是您想要的。
答案 1 :(得分:1)
const LineClient = require('messaging-api-line');
这将采用默认导出并将其分配给变量LineClient
,此变量可以具有任何名称
const { LineClient } = require('messaging-api-line');
当所需模块中有多个导出时,这将采用具有完全 KEY LineClient
的导出