简介
Object.defineProperty()方法是用于声明一个变量,类似var let,但是他可以做一些比较高级的选项。
最基本的使用:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Object.defineProperty学习</title>
</head>
<body>
<script>
const obj = {age:18};
//该方法接收三个参数:
//1. 变量设置的上下文,一般是一个对象实例。
//2. 变量名。
//3. 一个配置对象。
Object.defineProperty(obj,"name",{
//设置变量的值
value:"Yehaocong",
})
console.log(obj);
</script>
</body>
</html>
结果:
由上图可知,使用Object.defineProperty()方法定义的对象默认是不能修改、被枚举和被删除的,可以通过配置对象的enumerable属性、writable属性和configurable属性配置的。
结果:
Object.defineProperty()有个比较高级的功能是他有get属性和set属性,都是一个方法。
get方法会在获取该属性值时进行调用,并且该方法的返回值会是这个属性的值。
set方法会在设置该属性值时进行调用,该方法接收一个参数,就是被修改的新值。