2

How can I use string argument input as a part of variable name in a Javascript? I want to do that because it seems to be tedious to define getter and setter for all the fields... while most of the fields have similar names.

For example,

var random = {
    this.input1_field : null,
    this.input2_field : null,
    set: function(name,field){
       this.name_field = field;   
    }
}

where I want name_field to be dynamic based on the input variable 'name'. (ex, name="input1" or name="input2" etc)

1
  • I don't think you can write this.input1_field like that. Surely that's a syntax error? And why to you want to define a getter and a setter? Sounds like a bad habit coming from Java. Commented May 22, 2011 at 22:28

2 Answers 2

8

this[name + "_field"] = field

You can just pass in a string and use it.

this["input1_field"] === this.input1_field

Sign up to request clarification or add additional context in comments.

Comments

1

If your variable has been declared as global, you could do something like this:

var myVar = 5;
var myString = "myVar";

function anyFunc(str){
    return window[str];
}

anyFunc(myString); // Outputs 5

If this variable is local, you could follow the same procedure using the pointer this instead of window.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.