在函数外部访问JavaScript函数变量
我对自己的新手身份表示歉意,但我不清楚如何在函数之外的函数中访问变量。我知道你需要通过他们一些如何,但我不是100%确定的原因和如何 以下面的代码为例,我想在函数之外的整个代码中使用在函数外部访问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; } 它
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