javaScript对象访问器

JavaScript 访问器(Getter 和 Setter)

使用 getter 和 setter 时,JavaScript 可以确保更好的数据质量。

JavaScript Getter(get 关键词)

    // 创建对象:
    var person = {
        firstName: "Bill",
        lastName : "Gates",
        language : "en",
        get lang() {
            return this.language;
        }
    };
    // 使用 getter 来显示来自对象的数据:
    document.getElementById("demo").innerHTML = person.lang;

JavaScript Setter(set 关键词)

    var person = {
        firstName: "Bill",
        lastName : "Gates",
        language : "",
        set lang(lang) {
            this.language = lang;
        }
    };
    // 使用 setter 来设置对象属性:
    person.lang = "en";
    // 显示来自对象的数据:
    document.getElementById("demo").innerHTML = person.language;

JavaScript 函数还是 Getter

代码1

    var person = {
        firstName: "Bill",
        lastName : "Gates",
        fullName : function() {
            return this.firstName + " " + this.lastName;
        }
    };
    // 使用方法来显示来自对象的数据:
    document.getElementById("demo").innerHTML = person.fullName();

代码2

    var person = {
        firstName: "Bill",
        lastName : "Gates",
        get fullName() {
            return this.firstName + " " + this.lastName;
        }
    };
    // 使用 getter 来显示来自对象的数据:
    document.getElementById("demo").innerHTML = person.fullName;

代码 1 以函数形式访问 fullName:person.fullName()。
代码 2 以属性形式访问 fullName:person.fullName。
Getter、Setter提供了更简洁的语法,它允许属性和方法的语法相同

使用Object.defineProperty() 方法可用于添加 Getter 和 Setter

    // 定义对象
    var obj = {counter : 0};
    // 定义 setters
    Object.defineProperty(obj, "reset", {
        get : function () {this.counter = 0;}
    });
    Object.defineProperty(obj, "increment", {
        get : function () {this.counter++;}
    });
    Object.defineProperty(obj, "decrement", {
        get : function () {this.counter--;}
    });
    Object.defineProperty(obj, "add", {
        set : function (value) {this.counter += value;}
    });
    Object.defineProperty(obj, "subtract", {
        set : function (value) {this.counter -= value;}
    });
    
    // 操作计数器:
    obj.reset;
    obj.add = 5;
    obj.subtract = 1;
    obj.increment;
    obj.decrement;

 上一篇
常用git命令 常用git命令
其他操作 git init:初始化本地库 git status:查看工作区、暂存区的状态 git add <file name>:将工作区的“新建/修改”添加到暂存区 git rm --cached <file name&
2020-01-13
下一篇 
web前端知识梳理-javascript web前端知识梳理-javascript
javascript基本数据类型 基本数据类型:Undefined、Null、Boolean、Number、String。 引用类型:Object、Array、Function JavaScript检测一个变量是一个String类型
2019-12-23
  目录