getter_setter

Posted sske531549304

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getter_setter相关的知识,希望对你有一定的参考价值。

访问器属性: 不实际存储属性值
专门对其它属性提供验证保护
何时: 只要按照自定义规则保护属性
如何: 也有四大特性:
   {
      get:function(){return 受保护的属性值},
  set:function(val){
  验证要赋的新值val
  验证通过才将val保存到受保护的属性中
  },
    enumerable:true/false,
    configurable:true/false,
  }  
当通过访问器属性获取受保护的属性值时
自动调用get方法
当通过访问器属性为受保护的属性赋值时
自动调用set方法
参数val,自动获得要赋的新值
大问题: 受保护的属性值应该保存在哪儿?
才能做到比人不能直接用,只能通过访问器属性访问
解决: 闭包!


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var eric={
id:1001,
ename:"Eric"
};
+function(){
var _age;
Object.defineProperty(eric,"age",{
get:function () {
return _age;
},
set:function (val) {//val自动获取要赋的新值
if (val>=18&&val<=65)
_age=val;
else
throw new RangeError("年龄必须介于18-65之间");
}
})
}();
// eric.age=10;//当试图给访问器属性赋值时,会自动调用set方法
eric.age=26;
console.log(eric.age);
eric._age=0;
console.log(eric.age);
</script>
</body>
</html>






















































以上是关于getter_setter的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数