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>
推荐:《2021年js面试题及答案(大汇总)》