美文网首页
对象访问器 getter和setter

对象访问器 getter和setter

作者: web_jianshu | 来源:发表于2020-05-13 16:17 被阅读0次

    var person = {

            firstName: "Bill",

            lastName: "Gates",

            language: "en",

            get lang() { // 自动解析为 lang: return this.language

              return this.language;

            },

            set lang(value) {

              this.language = value;

            }

          };

          console.log(person.lang); // => "en"

          person.lang = "chinese";

          console.log(person); // => {firstName: "Bill", lastName: "Gates", language: "chinese"}

          console.log(person.lang); // => "chinese"

    例子1

          var person = {

            firstName: "Bill",

            lastName: "Gates",

            fullName: function() {

              return this.firstName + " " + this.lastName;

            }

          };

          console.log(person.fullName()); // => Bill Gates 以方法的形式访问

    例子2

          var person = {

            firstName: "Bill",

            lastName: "Gates",

            get fullName() { // 自动解析为 fullName: "Bill Gates"

              return this.firstName + " " + this.lastName;

            }

          };

          console.log(person); // => {firstName: "Bill", fullName: "Bill Gates", lastName: "Gates"}

          console.log(person.fullName); // => Bill Gates 以属性形式访问, 提供了更简洁的语法。

    模拟js操作客户端的cookie

          let doc = {

            arp_scroll_position: 414,

            PHPSESSID: "65trladb2tjqbikl0fn93akkbu",

            get cookie() {

              let str = "";

              for (let key in this) {

                if (key !== "cookie") {

                  str += key + "=" + this[key] + ";";

                }

              }

              return str.slice(0, -1);

            },

            set cookie(value) {

              let arr = value.split(";");

              for (let item of arr) {

                let [a, b] = item.split("=");

                this[a] = b;

              }

            }

          };

          doc.cookie = `app-installed=1; expires=${new Date(

            2020,

            11,

            11

          ).toGMTString()}`;

          console.log(doc); // => {" expires": "Thu, 10 Dec 2020 16:00:00 GMT", PHPSESSID: "65trladb2tjqbikl0fn93akkbu", app-installed: "1", arp_scroll_position: 414, cookie: "arp_scroll_position=414;PHPSESSID=65trladb2tjqbikl0fn93akkbu;app-installed=1; expires=Thu, 10 Dec 2020 16:00:00 GMT"}

          console.log(doc.cookie); // => arp_scroll_position=414;PHPSESSID=65trladb2tjqbikl0fn93akkbu;app-installed=1; expires=Thu, 10 Dec 2020 16:00:00 GMT

    相关文章

      网友评论

          本文标题:对象访问器 getter和setter

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