将属性从对象分配给 HTMLElement 的 es6/7 简写

Posted

技术标签:

【中文标题】将属性从对象分配给 HTMLElement 的 es6/7 简写【英文标题】:es6/7 shorthand for assigning properties from object to HTMLElement 【发布时间】:2021-08-30 09:35:10 【问题描述】:

以下内容的简写:

setupIframeConfig(element: htmlIFrameElement, config: IFrameConfig)
    element.src = config.src;
    element.width = config.width;
    element.width = config.width;

使用 rest 不会这样做,因为它会创建一个新对象而不是 HTML 元素引用。

element = ...element, ...config

认为可能是解构赋值,但用于声明变量。

这个案例的简写 es6/7 是什么?

【问题讨论】:

Object.keys(config).forEach(key=> element[key]=config[key]); Object.assign(element, config) 这里应该够用了。 我有一个答案,您可以在其中将自定义函数附加到 HTMLElement 原型,该原型将遍历您的配置对象并在 HTMLElement 中设置这些属性,但Object.assign 似乎已经完成了像 @ 这样的工作提到了花费者。 【参考方案1】:

我假设您正在寻找最简洁的方法。

这很可能通过使用Object.assign 来实现:

Object.assign() 方法将所有可枚举的自身属性从一个或多个源对象复制到目标对象。

在你的情况下,目标对象是element,这里唯一的源对象是config

Object.assign(element, config)

【讨论】:

以上是关于将属性从对象分配给 HTMLElement 的 es6/7 简写的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript——不能将类型“HTMLElement | null”分配给类型“HTMLElement”

TypeScript——不能将类型“HTMLElement | null”分配给类型“HTMLElement”

“HTMLElement”类型的参数不能分配给“CanvasImageSource”类型的参数

从对象获取属性值并将其分配给javascript中的变量

如何使用reduce将具有属性的对象分配给对象的属性

使用循环将属性分配给对象