Javascript ';函数语句需要一个名称';将函数声明为属性时

Javascript ';函数语句需要一个名称';将函数声明为属性时,javascript,jquery,parameters,Javascript,Jquery,Parameters,还是个新手。很抱歉。我试图将一个函数声明为另一个函数的属性。我确信我能做到这一点,而且语法是正确的。但我一直认为“函数statation需要一个名称”是一个错误;暗示它认为我在创建一个匿名函数 这是密码。它在隐藏和显示参数上抛出错误。我错过了什么 function band(){ var width_offset = { high: "left:-376px", low: "up:-200px" , } hide : function(width_offset){

还是个新手。很抱歉。我试图将一个函数声明为另一个函数的属性。我确信我能做到这一点,而且语法是正确的。但我一直认为“函数statation需要一个名称”是一个错误;暗示它认为我在创建一个匿名函数

这是密码。它在隐藏和显示参数上抛出错误。我错过了什么

function band(){

var width_offset = {
    high: "left:-376px", 
    low: "up:-200px" ,
}

hide : function(width_offset){ 
                if ($(document).width < 768){
                        $("#band").animate({width_offset.low}, {queue: false, duration: 200});  
                }else{
                        $("#band").animate({width_offset.high}, {queue: false, duration: 200});  
                };
            }

show : function(){ $("#band").animate({left:'0px'}, {queue: false, duration: 200}); }
功能带(){
变量宽度\u偏移={
高:“左:-376px”,
低:“上升:-200px”,
}
隐藏:函数(宽度\偏移量){
如果($(文档).宽度<768){
$(“#band”).animate({width#u offset.low},{queue:false,duration:200});
}否则{
$(“#band”).animate({width#u offset.high},{queue:false,duration:200});
};
}
show:function(){$(“#band”).animate({left:'0px'},{queue:false,duration:200})
}


谢谢。

这不是声明属性,而是声明标签和函数语句(确实需要名称)

我猜您希望您的其他代码能够执行
band.hide()
band.show()
,在这种情况下,语法如下所示:

var band = (function() {

    var width_offset = {
        high: "left:-376px",
        low: "up:-200px",
    };

    return {
        hide: function(width_offset) {
            if ($(document).width < 768) {
                $("#band").animate({
                    width_offset.low
                }, {
                    queue: false,
                    duration: 200
                });
            } else {
                $("#band").animate({
                    width_offset.high
                }, {
                    queue: false,
                    duration: 200
                });
            };
        },

        show: function() {
            $("#band").animate({
                left: '0px'
            }, {
                queue: false,
                duration: 200
            });
        }

    };
})();
var band=(函数(){
变量宽度\u偏移={
高:“左:-376px”,
低:“上升:-200px”,
};
返回{
隐藏:函数(宽度\u偏移){
如果($(文档).宽度<768){
$(“#乐队”)。制作动画({
宽度偏移量低
}, {
队列:false,
持续时间:200
});
}否则{
$(“#乐队”)。制作动画({
宽度偏移量高
}, {
队列:false,
持续时间:200
});
};
},
show:function(){
$(“#乐队”)。制作动画({
左:“0px”
}, {
队列:false,
持续时间:200
});
}
};
})();

在JavaScript中不能执行类似的操作:

{"up:-200px"} != { up: '-200px' } # Not equivalent!
相应地更改代码:

function band() {

  var width_offset = {
    high: { left: "-376px" }, 
    low:  { up:   "-200px" }
  };

  return {
    hide: function(width_offset) {  
      if ($(document).width < 768) {
        $("#band").animate(width_offset.low, {queue: false, duration: 200});  
      } else {
        $("#band").animate(width_offset.high, {queue: false, duration: 200});  
      }
    },
    show : function() {
      $("#band").animate({left:'0px'}, {queue: false, duration: 200}); 
    }
  }
}
功能带(){
变量宽度\u偏移={
高:{左:“-376px”},
低:{up:“-200px”}
};
返回{
隐藏:函数(宽度\偏移量){
如果($(文档).宽度<768){
$(“#band”).animate(width_offset.low,{queue:false,duration:200});
}否则{
$(“#band”).animate(width_offset.high,{queue:false,duration:200});
}
},
show:function(){
$(“#band”).animate({left:'0px'},{queue:false,duration:200});
}
}
}

请尝试格式化您的代码,使其更具可读性。可能是因为您的答案与其他答案相似?我看不出有什么理由。我为你把它弄平了。