javascript - 为什么对象解构在风格上不起作用?
问题描述
HTML 元素是一个对象。风格也是一个对象。那么为什么这段代码不起作用呢?没有解构一切正常,所以这不是一个大问题,我只是想知道原因。
const changeColor = () => {
const div = document.querySelector("div");
let {color, background} = div.style;
color = "red";
background = "blue";
}
div{
width: 300px;
height: 150px;
color: blue;
background: red;
}
<div onClick = "changeColor()">
<p>Example</p>
</div>
解决方案
解构只会创建新的局部变量,这意味着
let {color, background} = div.style
本质上等同于
let color = div.style.color
let background = div.style.background
如果你然后按照这些线
color = "red"
background = "blue"
您没有为任何东西分配新的对象属性,您只是为局部变量分配了新值。
推荐阅读
- bash - 使用文件中的参数进行并行处理
- c++ - 使用命名空间时,C++ 模板函数无法使用 g++ 编译
- java - aws ecs环境中的Spring Cloud应用程序错误
- javascript - 调整浏览器整页 js 大小时消除延迟
- r - 用 rvest 刮擦
- android - 如何在 Android 上连接到特定的 wifi SSID?
- wpf - C# WPF - 即使鼠标移到子控件上也会触发 Canvas MouseMove 事件
- python - 大熊猫的条件
- ios - 从 Swift 中的领域数据库文件导入初始数据
- firebase - 部署到 Firebase 后,如果不删除浏览器中的站点缓存,浏览器中的更改将不会更新