functiongetCountryObject(name, capital){let full_name ='The "VERY" Great '+ name
console.log("inside function getCountryObject this=",this);return{
country_name : full_name,
capital : capital,
population :300000000,
getCountryName :function(){
console.log("inside getCountryName=",this);returnthis.country_name
},getPresident(){
console.log("inside getPresident of this country=",this);return{
name :'Trump',
slogan :'Make America "VERY" Great Again!!!',say(){
console.log('I am saying I am the president of this=',this);
console.log("Let's "+this.slogan);}}}}}let country =getCountryObject('America','Washington DC');
console.log('---Main Program Level-------');
console.log("In Main this=",this);
console.log('----------');
console.log();
console.log('---Country Level-------');
console.log(country)
console.log('country.getCountryName()==', country.getCountryName());
console.log('------------------------');
console.log();
console.log('--President Level------');let president = country.getPresident()
console.log('president==', president);
president.say()
inakamono@ninja MINGW64 ~
$ node country_state_city.js
inside function getCountryObject this= Object [global]{
global: [Circular],
clearInterval: [Function: clearInterval],
clearTimeout: [Function: clearTimeout],
setInterval: [Function: setInterval],
setTimeout: [Function: setTimeout]{[Symbol(util.promisify.custom)]: [Function]},
queueMicrotask: [Function: queueMicrotask],
clearImmediate: [Function: clearImmediate],
setImmediate: [Function: setImmediate]{[Symbol(util.promisify.custom)]: [Function]}}
---Main Program Level-------
In Main this={}
----------
---Country Level-------
{
country_name: 'The "VERY" Great America',
capital: 'Washington DC',
population: 300000000,
getCountryName: [Function: getCountryName],
getPresident: [Function: getPresident]}
inside getCountryName={
country_name: 'The "VERY" Great America',
capital: 'Washington DC',
population: 300000000,
getCountryName: [Function: getCountryName],
getPresident: [Function: getPresident]}
country.getCountryName()== The "VERY" Great America
------------------------
--President Level------
inside getPresident of this country={
country_name: 'The "VERY" Great America',
capital: 'Washington DC',
population: 300000000,
getCountryName: [Function: getCountryName],
getPresident: [Function: getPresident]}
president=={
name: 'Trump',
slogan: 'Make America "VERY" Great Again!!!',
say: [Function: say]}
I am saying I am the president of this={
name: 'Trump',
slogan: 'Make America "VERY" Great Again!!!',
say: [Function: say]}
Let's Make America "VERY" Great Again!!!(base)
inakamono@ninja MINGW64 ~
$
JS Let‘s Make THIS great again ??!! To understand this in regular and arrow function
function getCountryObject(name, capital){ let full_name = 'The "VERY" Great ' + name console.log("inside function getCountryObject this=", this); return { country_name : full_name, capital : capital, population : 3000000