Javascript 如何将语句指定给对象属性

Javascript 如何将语句指定给对象属性,javascript,object,properties,Javascript,Object,Properties,可以用语句指定对象的属性吗?考虑下面的代码位: var obj = { canvas: document.getElementById('mainCanvas').getContext('2d'); } 我理解这不起作用的原因是,您实际上没有将语句“分配”到obj的canvas属性。相反,我做了这样的事情: var obj = { initCanvas: function() { this.canvas = document.getElementById('ma

可以用语句指定对象的属性吗?考虑下面的代码位:

var obj = {
    canvas: document.getElementById('mainCanvas').getContext('2d');
}
我理解这不起作用的原因是,您实际上没有将语句“分配”到
obj
canvas
属性。相反,我做了这样的事情:

var obj = {
    initCanvas: function() {
        this.canvas = document.getElementById('mainCanvas').getContext('2d');
    }
}

这是可行的,但对我来说似乎有些草率。有没有更好的方法来定义这个,或者使用这个方法是实现我所说内容的首选方法?

第一个示例非常好。到底什么是“不起作用”?@FelixKling:除了后面的分号:-)@Bergi:我刚刚注意到:-/|要回答你的问题,不,你必须在对象文本中使用表达式。但是,
document.getElementById('maincavas').getContext('2d')
是一个有效的表达式,只需删除
@MrZalib:您是否确实要执行该语句,并将结果值分配给属性;还是要分配语句本身?@Bergi:我想执行语句@Felix Kling:在第一个示例中,Chrome报告和错误“无法读取null的属性
getContext