How can I use string argument input as a variable name in javascript? - Stack Overflow

How can I use string argument input as a part of variable name in a Javascript? I want to do that becau

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)

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)

Share Improve this question asked May 22, 2011 at 21:26 user482594user482594 17.5k23 gold badges76 silver badges114 bronze badges 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 ing from Java. – Zecc Commented May 22, 2011 at 22:28
Add a ment  | 

2 Answers 2

Reset to default 8

this[name + "_field"] = field

You can just pass in a string and use it.

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

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.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744143085a4560292.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信