1.正常使用

 <script>
            const product ={
                //属性
                data : [
                    {id :1 ,name : "电脑" , price:5000 , num : 5},
                    {id :2 ,name : "手机" , price:4000, num : 15},
                    {id :3 ,name : "相机" , price:6000, num : 25}
                ],
                //计算金额(方法)
                //es6的方法的简化,将冒号和function关键字可以删除
                getAmounts : function(){
                    return this.data.reduce((t,c) => (t+=c.price *c.num),0);
                },
                //访问器属性,将一个方法包装成一个属性

                //get:是读取,也叫读操作
                get total(){
                    return this.data.reduce((t,c) =>(t+=c.price *c.num),0 );
                },
                //set:是写操作 访问器属性的写操作
                set setNum(num){
                    this.data[1].num=num;
                },
                set setPrice(price){
                    this.data[1].price=price;
                },
            };
            console.log(product.getAmounts());
            console.log("总金额为:",product.total);
            product.setPrice=100;
            console.log("更改后的价格为:",product.data[1].price);
 </script>

2.访问器属性的优先级高于同名的普通属性

  <script>
          let user={
              //属性
              data:{name},
              //方法
              set name(name){
                  this.data.name=name;
              },
              get name(){
                  return this.data.name;
              }
          }
          user.name="呵呵";
          console.log(user.name);
    </script>
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。