【发布时间】:2021-07-08 18:51:29
【问题描述】:
我们可以将作为参数接收的父对象的所有对象“作为单独的对象”解包吗?我知道它可以作为funName(objA, ObjB){---} 完成,但无论如何都可以在接收时不必将单个对象提及为(objA, ObjB) 来完成?
这可能听起来令人困惑,因此这里有一个案例来帮助理解。我总共有 12+ 个缓存的 DOM 元素,稍后根据需要在 5-6 个函数中使用这些元素。 我真正希望拥有的是,我可以在以后的函数中接收它们,并可以通过它们的名称使用它们。一个荒谬的想法草图可能看起来像也可能不像下面这样,也许它可能有助于理解我的挑战:
Function mainFunction() {
parentObj = {objA: "$_el1", objB: "$_el2"..many more..};
subFunc1(parentObj);
}
subFunc1(...) {
objH.css("backgroundColor": "#f5f5f5");
}
谁能告诉我这是否可能?如果是,如何!任何帮助或指导将不胜感激。 谢谢提前。
【问题讨论】:
-
我们可以做
subFunc1({ objH }) {...}来解压我们需要的对象的属性 -
@НикитаНигматуллин 但是您需要在解构参数中列出所有属性名称,目标不是列出所有名称。 @Avinash 为什么不直接传递对象,并使用像
o这样的短参数名称,然后通常引用属性前。o.objH..? -
你想的还不止这些吗?
subFunc1(props) { props.objH && props.objH.css('backgroundColor', '#f5f5f5') }...您传递了一个对象props,它可能包含有问题的特定元素键,如果存在,该函数将被执行。 -
我现在面临一个奇怪的挑战。将对象作为
subFunc1($pageEls);传递,而subFunc1($pageEls) {...}没有收到它。也许我在某处打错了字。小事,但不合情理。无论如何,感谢您的时间和善意的帮助。在帮助他人的同时,真正欣赏您的精神和敏感性。上帝保佑@SteveHynding。
标签: javascript object destructuring object-destructuring destructure