下面写了三种颜色来改变div的颜色,前面两种可以改变,第三种却不可以改变,是什么原因呢?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>堆栈内存的深度理解</title>
<style>
.box{
width:100px;
height: 100px;
background-color: lightblue;
}
</style>
</head>
<body>
<div class="box" id="box"></div>
</body>
<script>
let box=document.getElementById('box');
//方式一
// box.style.backgroundColor='red'; //可以改变颜色
// 方式二
// let s=box.style;
// s.backgroundColor='green'; //可以改变颜色
//方式三
let c=box.style.backgroundColor; //不可以改变颜色
c='red';
</script>
</html>
如果要获得box的详细信息可以用console.dir(box);
从图片中可以看出,它是一个引用类型(object),由许多组键值对组成,而且我们找到style这个属性,可以看出,它本身又是一个引用类型,所以出现上面这种情况,归根结底,还是与栈内存有关。