我有一个非常新秀的问题......
如果我定义了JS对象,并且我使用函数生成属性值,为什么属性值会返回一个函数而不是生成的值?
示例:
var object = {
bla: 1,
days: [],
test : function(){
return 'bla';
}
}
console.log(object.test);
我希望object.test
成为'bla'。取而代之的是function(){ return 'bla'; }
......为什么?
答案 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()