Whats the diference between this two require methods:
1. var xx = require('module')
2. const {xx} = require('module')
I saw the first onde I can access xx as variable, with all script exported by module.. and second xx are undefined. How to access second "method" or is it a method too construct module to use {}
thanks
The first puts the full module handle in a variable named xx.
The second gets the xx property from the module handle and puts it in a variable named xx. So, the second would be the same as:
const xx = require('module').xx;
Also the first is using var and the second is using const, but I assume you already knew about that difference.
Said a different way:
This:
const {xx} = require('module');
is a shortcut for this:
const xx = require('module').xx;
It's most useful as a shortcut when using require(), when you want to get a bunch of properties from the module and assign them all to top level variables in your module like this:
const {xx, yy, zz, aa, bb, cc} = require('module');
which would obviously take a lot more code to replicate than that single line if you weren't using the object destructuring syntax.
FYI, all of this is just a form of object destructuring (a feature added to Javascript in ES6). It's not anything specific for require(), it's just that require() often returns an object with a bunch of properties that one is interested in. See this article "A Dead Simple into to Destructuring" for a nice summary of what object destructuring does.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With