繁体   English   中英

如何将变量传递给 JavaScript function?

[英]How do I pass variables into a JavaScript function?

是否可以将变量传递给 js function? 见代码:

function checkStartPrice (){
    if ($('#StartingPrice')[0].value.length == 0){
        alert("The 'Starting Price' cannot be left empty!");
        return false;
     } else {
        var BuyItNowPrice = parseFloat($('#BuyItNowPrice').val());
        var StartingPrice = parseFloat($('#StartingPrice').val());
        var Reserve = parseFloat($('#Reserve').val());
        if((BuyItNowPrice <= StartingPrice) && (StartingPrice > 0)){
            alert("The 'Buy It Now' price must be higher...");
            return false;
        }
        if((Reserve <= StartingPrice) && (StartingPrice > 0)){
            alert("Your 'Reserve Price' must be higher...");
            return false;
        }
        return true;
    }
}

我想使用var BuyItNowPrice = parseFloat($('#BuyItNowPrice').val()); 等并将它们放在function之外,然后将它们调入。

原因是我有 3 个这样的函数,所以这 3 个变量( BuyItNowPriceStartingPriceReserve )重复 9 次,每个 function 中重复 3 个。

有没有办法做到这一点?

任何帮助将不胜感激,谢谢

您可以通过将这些变量从 fn 中取出来使其成为全局变量

    BuyItNowPrice = parseFloat($('#BuyItNowPrice').val());
    StartingPrice = parseFloat($('#StartingPrice').val());
    Reserve = parseFloat($('#Reserve').val());
    fn1(){}     
    fn2(){}
    fn3(){}

现在您可以在所有三个函数中使用这些变量。

使这三个变量成为全局变量。 要使它们成为全局变量,您只需要将这些变量放在任何 function 之外。 在 javascript 中,如果任何变量没有出现在任何函数中,则其 scope 是全局变量。

要回答您的第一个问题,是的,可以将变量传递给 javascript 中的函数。 您可以将变量作为 arguments 发送到 function。

示例: function myfucn(a, b) { //you implementation here.}

下面是一个将变量传递到 function 的简单示例。 当您声明 function 时,您还可以通过将 function 放在 function() 括号内来声明一些 arguments。 您可以使用您喜欢的任何字母/名称来表示 arguments - 当您调用 function 时,您会传递变量。

// put arguments into the function declaration - a,b,c
function myfunction(a, b, c) {

// use these arguments within the function
return (a+b+c);
}

// declare the variables outside the function
var first_variable = 1;
var second_variable = 2;
var third_variable = 3;

// returns '6'
myfunction(first_variable, second_variable, third_variable);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM