var employee = {
  ["Last Name"]: "Smith",
  ["First Name"]: "Josh",
  ["Full Name"]: function() {
    return this["First Name"] + this["Last Name"]
  }
};
document.write("Good day" + this["Full Name"])

मैं वर्तमान में जावास्क्रिप्ट सीख रहा हूं और मैं ब्रैकेट नोटेशन का उपयोग करके दो शब्दों में गुणों के साथ एक वस्तु बनाना चाहता था, दुर्भाग्य से यह मुझे Good day Josh Smith के बजाय Good dayundefined का परिणाम देता है। मुझे नहीं पता कि मेरे कोड की समस्या क्या होनी चाहिए ...

1
Jake Go 31 मार्च 2018, 03:00

2 जवाब

सबसे बढ़िया उत्तर

"पूरा नाम" को getter में बदलें , और जब आप इसे कॉल करें तो इसके बजाय employee देखें:

var employee = {
  "Last Name": "Smith",
  "First Name": "Josh",
  get "Full Name"() { // convert to getter
    return `${this["First Name"]} ${this["Last Name"]}`;
  }
};

document.write("Good day " + employee["Full Name"]) // refer to  employee instead of this
2
Ori Drori 31 मार्च 2018, 00:09
var employee = { 
  "Last Name":"Smith", 
  "First Name":"Josh",
  "Full Name": function() {
    return  this["First Name"] +" "+ this["Last Name"];
  }
};
document.write("Good day " + employee["Full Name"]());
1
Javier S 31 मार्च 2018, 00:06