Coffeescript Can';t从复杂对象访问解构分配
给定输入值:Coffeescript Can';t从复杂对象访问解构分配,coffeescript,destructuring,Coffeescript,Destructuring,给定输入值: input = name:'Foo' id:'d4cbd9ed-fabc-11e6-83e6-307bd8cc75e3' ref:5 addtData:'d4cbd9ed-fabc-11e6-83e6-307bd8cc75e3' data:'bar' 当我尝试通过如下函数对输入进行分解时: simplify: (input)-> { name, ref, id } = input …返回值仍然是完整输入或输入的副本 我是不
input =
name:'Foo'
id:'d4cbd9ed-fabc-11e6-83e6-307bd8cc75e3'
ref:5
addtData:'d4cbd9ed-fabc-11e6-83e6-307bd8cc75e3'
data:'bar'
当我尝试通过如下函数对输入进行分解时:
simplify: (input)->
{ name, ref, id } = input
…返回值仍然是完整输入或输入的副本
我是不是错过了一些简单的东西?如何访问已分解的值。如果您无法通过返回访问值,则除本地范围的值外,解构似乎没有什么价值。虽然这不一定是一个优势,但我能够传输并获得正确答案的唯一方法是使用
@
将解构值分配给本地范围(也称this
)
工作示例-
如果有人有更好的方法来解决这个问题,请添加一个答案,这样我可以选择它,因为这似乎不是最好的方法
input =
name:'foo'
data:'bar'
id: 12314
key:'children'
ref:1
f = (input)->
{ @name, @id } = input
r = {}
f.call(r, input)
console.log r # Object {name: "foo", id: 12314}