0

Here is my code,it does not get the values of the properties.I have used setmethod to set the property values given by the user.

var person ={
firstname:"",
lastname:"",
age:"",
qualification:"",
    set personinfo(firstname){
        this.firstname=firstname;
        },
        set personinfo(lastname){
            this.lastname=lastname;
        },
        set personinfo(age){
            this.age=age;
        },
        set personinfo(qualification){
            this.qualification=qualification
        },
    get displayinfo(){
        return "Name " + this.firstname +" " +this.lastname+"\nAge "+ this.age +"\nQualification " +this.qualification;

    }
}
firstname=window.prompt("Enter your first name");
lastname=window.prompt("Enter your last name");
age=window.prompt("Enter your age");
qualification=window.prompt("Enter your qualification");
console.log(person.displayinfo);
1
  • 4
    why multiple setters with same name? even if javascript would support overloading still it wouldnt work. you need to define a unique setter for each property say like set newAge(age) {...} or can use the constructor to set values. Commented Sep 13, 2020 at 14:13

3 Answers 3

1

You forgot to add person.. So the code should look like this.

person.firstname=window.prompt("Enter your first name");
person.lastname=window.prompt("Enter your last name");
person.age=window.prompt("Enter your age");
person.qualification=window.prompt("Enter your qualification");
Sign up to request clarification or add additional context in comments.

Comments

0

For cleaning up your code, I would suggest the following. setInfo now dynamically changes your objects' key values.

const person = {
  firstName: "",
  lastName: "",
  age: "",
  qualification: "",

  setInfo: function(key, value) {
    this[key] = value;
  },

  getInfo: function() {
      return `Name: ${this.firstName} ${this.lastName}, \nAge: ${this.age}, \nQualification: ${this.qualification}`
  },
};

Output in console: enter image description here

Comments

0

Change your code to this:

var person ={
firstname:"",
lastname:"",
age:"",
qualification:"",
    set firstname(value){
        this.firstname=value;
        },
        set lastname(value){
            this.lastname=value;
        },
        set age(value){
            this.age=value;
        },
        set qualification(value){
            this.qualification=value;
        },
    get displayinfo(){
        return "Name " + this.firstname +" " +this.lastname+"\nAge "+ this.age +"\nQualification " +this.qualification;

    }
}
person.firstname=window.prompt("Enter your first name");
person.lastname=window.prompt("Enter your last name");
person.age=window.prompt("Enter your age");
person.qualification=window.prompt("Enter your qualification");
console.log(person.displayinfo);

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.