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

时间:2015-03-03 15:02:34

标签: javascript

我有一个非常新秀的问题......

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

示例:

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

console.log(object.test);

我希望object.test成为'bla'。取而代之的是function(){ return 'bla'; } ......为什么?

2 个答案:

答案 0 :(得分:3)

你必须以这种方式执行该功能:console.log(object.test());
或者,正如@YuriiKovalenko指出的那样,你可以写下这样的函数:

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

然后console.log(object.test);会给你" bla"

答案 1 :(得分:1)

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

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

如果你想这样做,你必须得到你必须执行的值object.test()