来自2个不同函数的变量未定义

时间:2019-02-02 17:29:08

标签: javascript jquery ajax laravel

我正在尝试添加2个不同函数中的2个变量。但这给出了不确定的结果。 n_standard和n_quad已初始化

var n_standard = 0;
var n_quad = 0;
var totalQuad = quadRoom();
var totalStandard = standardRoom();
var total = totalStandard + totalQuad;

function standardRoom() {

  n_standard = n_standard + Number($("#selectBoxStandard").val());

  var totalStandard = {{$availableRooms[0]['nightRate'] * $n_nights }} * n_standard;


      $("#totals ul").html('<li>Total:'+ total +'</li>');
      return totalStandard;

}

  function quadRoom()
{
    n_quad = n_quad + Number($("#selectBoxQuad").val());

   var totalQuad = {{$availableRooms[1]['nightRate'] * $n_nights}} * n_quad;

   return totalQuad;


}

1 个答案:

答案 0 :(得分:1)

您要声明两次。删除函数中的var。在顶级范围内声明它们可以使它们随处可见。

此外,quadRoom和standardRoom函数不适用于这些变量,因为它们仅在到达它们所在的行时才定义。

您可以尝试使用箭头函数将函数声明为变量。
一般来说...

var x =(a,b)=> {返回a * b};

以您的情况..

var totalQuad;
 var quadRoom = () => {
  n_quad = n_quad + Number($("#selectBoxQuad").val());
  totalQuad = {{$availableRooms[1]['nightRate'] * $n_nights}} * n_quad;

return totalQuad;
}