在函数外部访问JavaScript函数变量

在函数外部访问JavaScript函数变量,javascript,parameters,Javascript,Parameters,我对自己的新手身份表示歉意,但我不清楚如何在函数之外的函数中访问变量。我知道你需要通过他们一些如何,但我不是100%确定的原因和如何 以下面的代码为例,我想在函数之外的整个代码中使用var degree。我该怎么做 function DegreeToMil() { //Degree's to Mils: 1 Degree = 17.777778 Mils var degree = 10; var mils = degree * 17.777778; return mils; } 它

我对自己的新手身份表示歉意,但我不清楚如何在函数之外的函数中访问变量。我知道你需要通过他们一些如何,但我不是100%确定的原因和如何

以下面的代码为例,我想在函数之外的整个代码中使用
var degree
。我该怎么做

function DegreeToMil() 
{

//Degree's to Mils: 1 Degree = 17.777778 Mils

var degree = 10;
var mils = degree * 17.777778;

return mils;

 }

它实际上相当简单,只需在函数外部定义它

编辑:更新了一个示例和注释,解释了所做的工作及其工作原理

    DegreesToMils.degrees = 10; /* This is a static variable declaration to make sure it isn't undefined
                             * See note 1 below */

function DegreesToMils(degrees) {
    if (degrees !== undefined) {
        DegreesToMils.degrees = degrees; /* If the parameter is defined, 
                                          * it will update the static variable */
    }

    var milsPerDegree = 17.777778; /* This is a variable created and accessible within the function */

    return DegreesToMils.degrees * milsPerDegree; /* The function will return 177.77778 */
}

console.log(DegreesToMils.degrees); /* Prints 10, Note 1: This would be undefined if
                                     * not declared before the first call to DegreesToMils() with a 
                                     * defined parameter
                                     */
console.log(DegreesToMils(10)); /* Prints 177.77778 */
console.log(DegreesToMils(9)); /* Prints 160.00000200000002, Sets DegreesToMils.degrees to 9 */
console.log(DegreesToMils.degrees); /* Prints 9 */

一个不好的答案是定义它时不使用使其全局化的
var
。。。更好的答案是
返回
你想在函数末尾使用的变量是的,我知道我可以将其设置为全局变量,但在这种情况下我不想这样做。然后你可以将变量传递给函数,在函数内部读取它们,然后做你想做的事情,最后-返回它们-这将是一个更好的方法。那么为什么我不能通过键入
DegreeToMil.degree
@mwilson来访问
var degree
。我更新了下面的答案,以便您可以查看它。注意,除非您在尝试访问
DegreesToMils.degrees
之前使用定义的参数调用
DegreesToMils()
,而不包括函数上方包含的定义行I,否则它将解析为
未定义的
。你可能在乎,也可能不在乎。此外,我也尝试过这样做,这样您就不需要函数外的行,但它仍然需要先进行函数调用。如果其他人知道另一种方式,我希望他们能分享。我刚刚写道,这将是一个糟糕的答案:)我们同时发布;)我使用var在函数外部定义了mil,并在函数内部分配给它。根据您所处的环境,例如node.js,将其定义为函数外部的变量只会使其成为包含模块的全局变量,而不会将其放入“全局空间”。编辑已更改的括号以将其排列。因此,我唯一可以在函数外部使用
度数
返回
它的选项是什么?关于
函数度数mil(度数)
function DegreeToMil() 
{

    //Degree's to Mils: 1 Degree = 17.777778 Mils

    var degree = 10;
    var mils = degree * 17.777778;
    var result = [degree, mils]; // it's an array
    return result;
}

// use it like this

var myResult = DegreeToMil();
console.log(myResult[0]); // degree
console.log(myResult[1]); // mils