正在调用函数,即使它没有在javascript中调用

时间:2018-04-29 00:06:45

标签: javascript function

我遇到了这个问题,我没有调用函数f(),但是对象' obj'即使我们也没有对“obj”做任何事情,也会被调用。 x到11的值。 在尝试将obj.g设置为值时是否会调用函数f()?



var x = 10;

function f () {
  console.log(x); //logs 10
  x = x + 1;
  console.log(x); //logs 11
  return x;
}


var obj = {
  func: f,
  g: f(),
};

console.log(x); // logs 11




2 个答案:

答案 0 :(得分:0)

使用g: f()实际上是在调用该函数。在没有函数体(())的函数之后指定{..}将立即执行该函数。只需删除函数名后的括号:



var x = 10;

function f () {
  console.log(x); //logs 10
  x = x + 1;
  console.log(x); //logs 11
  return x;
}


var obj = {
  func: f,
  g: f,
};

console.log(x); // logs 10




答案 1 :(得分:0)

  

尝试将obj.g设置为a时是否调用函数f()   值?

烨!

分配list时会调用

f

您将obj.g分配给没有参数调用obj.g的返回值。要获取值,必须调用函数(f)。

f