假设我有一个像这样的对象
a = {b = function() { return 1 }, c: 2, f: 3}
a.z = a.b()
有没有办法在对象文字符号的单个赋值中编写它?如同:
a = {b: function() { return 1 }, c: 2, f: 3, z: this.b()}
显然这不起作用,因为this
仍然绑定到定义对象的范围,而不是对象本身。a.b()
也不起作用,因为a
尚未定义。
我实际上在使用 CoffeeScript,但我很确定如果在纯 JavaScript 中有一种巧妙的方法,它在 CoffeeScript 中也会看起来更短且更“功能化”。