我正在玩解构:
function create(){
let obj={a:1,b:2}
obj.self=obj
return obj
}
const {a,self} = create()
Run Code Online (Sandbox Code Playgroud)
有没有办法获得自我对象而不添加这样的属性?
function create(){
let obj={a:1,b:2}
// removes obj.self=obj
return obj
}
const {a,this} = create()
Run Code Online (Sandbox Code Playgroud)
如果可能,在一行代码中!
预先感谢您的帮助.
您可以将create返回值包装在临时外部对象中,然后通过外部对象的属性名称访问原始对象.这仍然允许您从原始对象中提取属性.
const {me:{a}, me} = {me:create()}
Run Code Online (Sandbox Code Playgroud)
这将a使用a对象的属性创建变量,并创建me保存整个对象的变量.
或者,从外部对象命名除属性名称之外的其他内容(例如,foo而不是me):
const {me:{a}, me:foo} = {me:create()}
Run Code Online (Sandbox Code Playgroud)
这仍然需要创建一个额外的属性,但该属性存在于即时设置的包装器对象上.这可以完全在外部完成,create因此您无需触及create函数如何操作的过程,只是为了使其对结构友好.
| 归档时间: |
|
| 查看次数: |
605 次 |
| 最近记录: |