预期为“:”,而是看到“_variableName”

Expected ':' and instead saw '_variableName'

我不知道在哪里声明这些变量,所以我可以将它们用作 obj.slider._minVal & obj.slider._maxVal。我收到 JShint 错误:

var _minVal = 75; ^ Expected ':' and instead saw '_minVal'. var _minVal = 75; ^ Expected an identifier and instead saw '='.

var obj = obj || {};

obj.slider = {
var _minVal=75, //Confused where to define these variables so it's available 
    _maxVal=300;//in _createSlider();

init:function(){
    console.log('Initialization of Slider');
    var $this = $(this);

    this._createSlider();
    return false;
},

// setSliderMin:function(sliderId, minVal){

// },

_createSlider:function(){
    $('.slider-range').slider({
      range: true,
      min: obj.slider._minVal,
      max: obj.slider._maxVal,
      values: [obj.slider._minVal, obj.slider._maxVal],
      slide: function( event, ui ) {
        $( '#amount' ).val( '$' + ui.values[ 0 ] + ' - $' + ui.values[ 1 ] );
        var handle = $(this).find('.ui-slider-handle');
        $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[0] + '</div></div>');
        $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[1] + '</div></div>');
      }
    });

    var value = $( '#slider-range' ).slider( 'option', 'values' );

    $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[0] + '</div></div>');
    $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[1] + '</div></div>');
}
};

obj.slider.init();

});

成员变量的语法与成员函数的语法相同:

key1: val,
key2: val

更改您的对象以使用 key/value 语法:

obj.slider = {
    _minVal: 75,
    _maxVal: 300,
    _createSlider: function() {...},
    init: function() {...}
};

或者,如果您想要隐藏变量和更自然的代码,您可能想要使用函数:

obj.slider = function() {
    var _minVal = 75,
        _maxVal = 300,
        _createSlider = function() {...};
    (this.init = function() {...})();
};

var slider = new obj.slider();
// later on you can reset by calling
slider.init();

JSFiddle

: 创建一个 属性 然后用 this:-

var obj = obj || {};

obj.slider = {

  _minVal: 75,
  _maxVal: 300,

  init: function() {
    console.log('Initialization of Slider');
    var $this = $(this);

    this._createSlider();
    return false;
  },

  _createSlider: function() {

    $('.slider-range').slider({
      range: true,
      min: this._minVal,
      max: this._maxVal,
      values: [this._minVal, this._maxVal],
      slide: function(event, ui) {
        $('#amount').val('$' + ui.values[0] + ' - $' + ui.values[1]);
        var handle = $(this).find('.ui-slider-handle');
        $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[0] + '</div></div>');
        $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[1] + '</div></div>');
      }
    });

    var value = $('#slider-range').slider('option', 'values');

    $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[0] + '</div></div>');
    $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[1] + '</div></div>');
  }
};

obj.slider.init();

@BenG 的回答很好,但您也可以创建一个 class 而不是使用 JSON 对象文字以使您的 variables/functions 私有。

var obj = obj || {};

obj.slider = function(){

  var _minVal = 75;
  var _maxVal = 300;

  console.log('Initialization of Slider');
  var $this = $(this);

  _createSlider();
  return false;

  function _createSlider() {
    $('.slider-range').slider({
      range: true,
      min: _minVal,
      max: _maxVal,
      values: [_minVal, _maxVal],
      slide: function(event, ui) {
        $('#amount').val('$' + ui.values[0] + ' - $' + ui.values[1]);
        var handle = $(this).find('.ui-slider-handle');
        $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[0] + '</div></div>');
        $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + ui.values[1] + '</div></div>');
      }
    });

    var value = $('#slider-range').slider('option', 'values');

    $('.ui-slider-handle:first').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[0] + '</div></div>');
    $('.ui-slider-handle:last').html('<div class="tooltip bottom slider-tip"><div class="tooltip-arrow"></div><div class="tooltip-inner">' + value[1] + '</div></div>');
  }
};

new obj.slider();