使用字符串名称访问类变量?

时间:2010-04-19 20:39:21

标签: javascript jquery

我有一个这样的课程

$.fn.dimeBar = function(custom) {  
    var var1 = 'test1';  
    var var2 = 'test2';  
    if(sometest){  
        //how can i access var1 or var2 here by using string name of variables  
        //some thing like alert(this['var1']) --> should alert: 'test1'    
    }  
}

2 个答案:

答案 0 :(得分:2)

尝试类似:

$.fn.dimeBar = function(custom) {
  var options = {
    var1: 'test1',
    var2: 'test2'
  };

  if(sometest){
    var foo = 'var1';
    alert(options[foo]); // "test1"
  }

};

或者,这可能与jQuery Plugin Development Pattern

更加一致
(function($){
  $.fn.dimeBar = function(options){

    // defaults
    options = $.extend({
      var1: "default",
      var2: "hello world"
    }, options);

    // debug options
    $.each(options, function(key, value){
      console.log(key+' is set to'+value);    
    });

  };
})(jQuery);

$('#foo').dimeBar({var2: "hello kitty"});

// console output
// var1 is set to default
// var2 is set to hello kitty

答案 1 :(得分:-3)

您只需使用: ....

if(sometest) {   警报(VAR1); } ....

由于您在if语句之前声明了变量,因此它们将在其中可用。

如果你担心范围,如果它在一个对象中,你会使用: 警报(this.var1);