最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

programmeradmin5浏览0评论

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.

发布评论

评论列表(0)

  1. 暂无评论