如何定义变量的值从一个函数到另一个函数?

时间:2014-12-13 12:42:16

标签: javascript

您好我有这个功能,例如:

var dt = new Date(); 
var now = dt.valueOf(); 
function date1() { 
  var d1 = Math.ceil(
    (Math.abs(now - dt.setUTCFullYear(2005))) / (1000*3600*24*365)
  ); 
}

我想从d1 var获取另一个函数的值,例如:

function res() { 
  document.write(d1).value; 
}

2 个答案:

答案 0 :(得分:1)

让你的函数返回值:

var dt = new Date(); 
var now = dt.valueOf(); 
function date1() { 
  return Math.ceil( // <=== Change, using return rather than setting a variable
    (Math.abs(now - dt.setUTCFullYear(2005))) / (1000*3600*24*365)
  ); 
}

然后在需要值时调用该函数:

function res() { 
  document.write(date1()).value; 
  // Change -----^^^^^^^
}

附注:据我所知,document.write没有任何返回值,因此.value行末尾的document.write不会产生任何返回值感觉,并且可能会导致TypeError抱怨您正在尝试访问undefined上的媒体资源。

附注2:在 general 中,document.write不是将信息放在网页上的好方法,而是使用DOM。像大多数规则一样,也有例外。

答案 1 :(得分:0)

如果要从函数B访问函数A的局部变量,则必须将函数B的定义放在函数A的主体内部。

function A() {
  var variable;

  function B() {
    // can access variable here
  }
}