My scenario is like this :
var data = {
name : 'joe',
message : 'Welcome ' + name,
fullname : 'Mr. ' + name
};
Expected Output :
console.log(' user : ' + data.message)
Welcome joe
How to do this ?
My scenario is like this :
var data = {
name : 'joe',
message : 'Welcome ' + name,
fullname : 'Mr. ' + name
};
Expected Output :
console.log(' user : ' + data.message)
Welcome joe
How to do this ?
The probably closest approach would be to use functions as parameters.
const data = {
name: 'Joe',
message: function() {
return `Welcome ${this.name}`;
}
}
console.log(data.message())
However, keep in mind that this does not work for native JSON objects, only for JS objects.
You can define a function getter inside an object using get()
and then call it as a property
.
var data = {
name : 'joe',
message : 'Welcome ',
name : 'Mr. ',
get fullMessage() {
return this.message + this.name;
}
};
console.log(data.fullMessage);
You can replace message and fullname string by functions like this :
var data = {
name : 'joe',
message : function() { return 'Welcome ' + this.name },
fullname : function() { return 'Mr. ' + this.name }
}
console.log(data.message())
console.log(data.fullname())
If you want to do it in the initialization of the variable, you can do it using functions. Example:
var data = {
name : 'joe',
message: function(){
return 'Welcome ' + this.name;
},
fullname: function(){
return 'Mr. ' + this.name;
}
}
console.log('user : ' + data.message());
console.log('user : ' + data.fullname());
You could use getter
s:
var data = {
name : 'joe',
get message() { return `Welcome ${this.name}`; },
get fullname() { return `Mr. ${this.name}`; },
};
console.log(data.message);
console.log(data.fullname);
You can use external variable of your jSON object. Try :
var name = "joe";
var data = {
name : name,
message : 'Welcome ' + name,
fullname : 'Mr. ' + name
};
console.log(' user : ' + data.message);