gpt4 book ai didi

javascript - 返回值给函数

转载 作者:行者123 更新时间:2023-12-02 18:38:27 26 4
gpt4 key购买 nike

如何将变量传递给一个函数,然后将值返回给另一个函数?我这里有一个简单的例子,我正在尝试解决这个问题。第一个函数接受参数“currpage”,将其作为数字正确返回给第二个函数,但是当我调用第二个函数时,console.log 显示 NaN。不确定我可能做错了什么。

$(document).ready(function () {

var currpage = 1;

$('p').click(function () {
var xyz = passfrom(currpage); //pass var to function and return value
console.log(xyz); //returns correct value

var abc = passto();
console.log(abc); //NaN
})
})

function passfrom(currpage) {
var newpage = parseInt(currpage) * 1000;
return newpage;
}

function passto() {
var newcurr = passfrom();
var newcurr = newcurr * 1000;
console.log(typeof (newcurr)); //number
return newcurr;
}

最佳答案

How does one pass a variable to one function and then return a value to another function?

变量只是一个存储值的小容器。当您将变量传递给函数时,您实际上将该变量的值传递给了它。所以在你的情况下:

passfrom(curpage);

passfrom(1);

是一样的。

在函数中,变量名用于访问这些值。这些名称完全独立于附加到函数外部的值的任何名称(如果它甚至有名称)。它们更像是别名。为了区别于变量,我们将它们称为参数。所以这个:

function passfrom(currpage) {
var newpage = parseInt(currpage)*1000;
return newpage;
}

还有这个:

function passfrom(myownname) {
var newpage = parseInt(myownname)*1000;
return newpage;
}

完全一样。如果我们写出实际发生的情况,我们会得到:

// var xyz = passfrom(currpage);
var xyz = value-of(passfrom(value-of(currpage))

因此,要将值传递给某个函数,您所要做的就是确保它具有这样一个可用的参数名称,通过它可以使用该值:

function passto(myalias) {
console.log(myalias);
}

passto(xyz); // writes 1000 to the console.

以上是您问题的实际答案。

为了让事情变得更复杂,还有两件事需要考虑:

  1. 范围。参数名称仅在您的函数内有效。如果它们与函数外部的某个变量名称相同,则该外部变量将被参数隐藏。所以:

    var currpage = 1;
    function plusOne(currpage) { curpage += 1; }
    plusOne(currpage);
    console.log(currpage); // 1, as the variable currpage was hidden

    function plusTwo(othername) ( currpage += 2; }
    plusTwo(currpage);
    console.log(currpage); // 3, as currpage was not hidden
  2. 这都适用于字符串、整数和其他简单类型。当您处理更复杂的类型时,参数名称不是传递给函数的值的别名,而是原始值的位置的别名。因此,在这种情况下,无论您对函数内的参数执行什么操作,都会自动发生在函数外部的变量上:

    var arr = [ 0, 1 ];
    function plusOne(somearr) { somearr[0] += 1; }
    plusOne(arr);
    console.log(arr[0]); // 1, as somearr references arr directly

    这称为“按值传递”和“按引用传递”。

关于javascript - 返回值给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com