美文网首页
JavaScript中的getter和setter

JavaScript中的getter和setter

作者: createK | 来源:发表于2017-11-14 23:28 被阅读36次

    JavaScript中的getter和setter

    在JavaScript中,可以使用getter属性和setter属性给对象的属性复制,在MDN的文档中,setter和getter连用,给对象创建一个伪属性。这种创建的属性MDN文档中称为伪属性。并且不能在具有真实值的属性上同时有一个setter。

    Setter

    语法

    {set prop(val) {...}}
    {set [expression](val){...}}
    

    参数

    • props 要绑定到给定函数的属性名
    • val 用户保存尝试分配给props的值的变量的别名
    • expression 从ES2015开始,可以使用表达式绑定到给定的函数

    注意:

    • setter的标识符可以是一个数字或者字符串
    • 必须有一个明确参数
    • 同一个对象中,不能为一个已有真实值的变量使用set,也不能为同一属性设置多个set。
      • ( { set x(v) { }, set x(v) { } }{ x: ..., set x(v) { } } 是不允许的 )

    setter定义的属性可以用delete操作移除

    示例

    对象初始化时定义setter

    定义一个属性age,

    //构造函数 Person
    function Person(num){
       this.num = num;
       this._age = 18
     }
     Person.prototype = {
       constructor:Person,
       set age (value){
         if(!(value>100 || value< 0)) {
           this._age = this._age;
         } else {
             this._age = value 
         }
       },
       get age() {
           return this._age
       }
     }
     //实例
     var person = new Person(18)
     console.log(person.age)
     person.age = "40"
     console.log(person.age)
    

    未完待续

    相关文章

      网友评论

          本文标题:JavaScript中的getter和setter

          本文链接:https://www.haomeiwen.com/subject/fapqvxtx.html