对象---访问器

时间:2020-04-15
本文章向大家介绍对象---访问器,主要包括对象---访问器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
const user = {
   name : '张三',
   age : 19
}
console.log(user);  // {name: "张三", age: 19}
user.age = 10000;
console.log(user);   // {name: "张三", age: 10000}

上述事例中,在对象外可以更改对象的属性的值,但是有时需要对改动的值设置范围,超过范围应该提示错误。
例:年龄应该设置为number类型,且年纪大于10岁小于100岁。

const user = {
    data :{
        name : '张三',
        age : 19
    },
    set age(value){
        // console.log(value)
        if(typeof value !== "number" || value > 100 || value <= 10){
            throw new Error('请传入符合规定的年纪');  
        }
        this.data.age = value
    },
    get age(){
        return this.data.age
    }
}
user.age = 17;
console.log(user.age);    // 17

伪造属性

let lesson = {
    lists:[
        {name : 'js', price : 100},
        {name : 'mysql', price : 233},
        {name : 'vue.js', price : 199}
    ],
    get total(){
        return this.lists.reduce((t,l)=>{
          return t + l.price
        },0)
    }
}
console.log(lesson.total);   // 532

使用访问器批量设置属性

let web = {
    name : '百度',
    url : 'www.baidu.com',
      
    set site(value){
        console.log(value.split(','));
        [this.name,this.url] = value.split(',');
        console.log(this.name,this.url);
    },

    get site(){
        return `${this.name}的网址是${this.url}`
    }
}
web.site = '淘宝,www.taobao.com';
console.log(web.site);    // 淘宝的网址是www.taobao.com

token的读写处理

let Request = {
    set token(content){
        localStorage.setItem("token",content);
    },
    get token(){
        let token = localStorage.getItem("token");
        if(!token){
            alert('请登录');
        }
        return token;
    }
}
Request.token = "0821301489274982";
console.log(Request.token);

原文地址:https://www.cnblogs.com/zhongfang/p/12706644.html