Javascript 对象函数返回函数而不是值

Javascript 对象函数返回函数而不是值,javascript,Javascript,我有一个很新的问题 如果我定义了一个JS对象,并使用一个函数来生成属性值,为什么属性值会返回一个函数而不是生成的值 例如: var object = { bla: 1, days: [], test : function(){ return 'bla'; } } console.log(object.test); 我希望object.test是“bla”。相反,它是函数(){return'bla';}。。。为什么?您必须以这种方式执行该函数:console.log(o

我有一个很新的问题

如果我定义了一个JS对象,并使用一个函数来生成属性值,为什么属性值会返回一个函数而不是生成的值

例如:

var object = {
  bla: 1,
  days: [],
  test : function(){
    return 'bla';
  }
}

console.log(object.test);

我希望
object.test
是“bla”。相反,它是
函数(){return'bla';}
。。。为什么?

您必须以这种方式执行该函数:
console.log(object.test())
或者,正如@YuriiKovalenko所指出的,您可以这样编写函数:

var object = {
  bla: 1,
  days: [],
  test : (function(){ return 'bla'; })()
}

然后
console.log(object.test)
将为您提供“bla”

您必须以这种方式执行该函数:
console.log(object.test())
或者,正如@YuriiKovalenko所指出的,您可以这样编写函数:

var object = {
  bla: 1,
  days: [],
  test : (function(){ return 'bla'; })()
}

然后
console.log(object.test)将给您“bla”

因为您将object.test的值设置为中的函数

var object = {
  bla: 1,
  days: [],
  test : function(){
    return 'bla';
  }
}

如果要执行此操作,必须获取必须执行的值
object.test()

,因为您将object.test的值设置为

var object = {
  bla: 1,
  days: [],
  test : function(){
    return 'bla';
  }
}

如果要执行此操作,您必须获取必须执行的值
object.test()

好的,太好了。我如何重写它,使object.test成为“bla”?比如,在查找值时是否可以自动执行该函数?如果需要,您可以简单地编写:
object.test=“bla”
,因此当您像
object.test那样访问它时,它将返回其值(“bla”)@Henk,
(function(){return'bla';})(
好的,太好了。我如何重写它,使object.test成为“bla”?比如,在查找值时是否可以自动执行该函数?如果需要,您可以简单地编写:
object.test=“bla”
,因此当您像
object.test那样访问它时,它将返回其值(“bla”)@Henk,
(function(){return'bla';})(