我遇到了这个问题,我没有调用函数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

答案 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