JavaScript 对象(Object)的补充
前面说了内存储存方式那如果用const储存而不是用let储存呢?
const c={
name:"小白",
age:25
};
c.name ="小黑";
console.log(c);
结果为{name:"小黑",age:25}
const按理说不能修改的这是为什么呢?
还记得上次讲解的内存分配吗?
实际上const和let只针对栈内存,意味着堆内存在栈内存对应的的地址不可修改了,但是堆内存里面可以修改。
const定义后栈内存无法修改
在对象中使用全局变量
//以下代码const可换成let
const name = "小白";
const age = 25;
const c ={
name,
age
};
alert(`${c.name},${age}`);
结果为小白,25
取得对象中的值赋值给函数的简写(弊端不能修改变量的名称,变量的名称对应的是属性)
//以下代码均可将const换成let
const c ={
name:"小白",
age:25
};
const name = c.name;
const age = c.age;
alert(`${c.name},${age}`);
//这样写是不是很麻烦
//可以这样简写
const {name,age} = c;
//和最开始执行的代码效果是一样的
对象中函数的简写方式
const c ={
name:"小白",
age:25
hello: function hello(){
console.log("你好");
},
};
c.hello();
可以简写为
const c ={
name:"小白",
age:25
hello(){
console.log("你好");
},
};
c.hello();
//结果是一样的