一、Get方法1、Functionget关键字将对象属性与一个函数绑定。当访问该属性时,将执行相应的函数。//语法1{getprop(){...}}//语法2{get[expression](){...}}2.示例:语法1constobj={log:['example','test'],getlatest(){if(this.log.length==0)返回未定义;返回this.log[this.log.length-1];}}console.log(obj.latest);//输出:“测试”。3.示例:语法2使用表达式作为属性名称。varexpr='foo';varobj={get[expr](){return'bar';}};console.log(obj.foo);//输出:bar4,动态添加的get属性varo={a:0}Object.defineProperty(o,"b",{get:function(){returnthis.a+1;}});console.log(o.b)//输出:15.删除getpropertyconstobj={log:['example','test'],getlatest(){if(this.log.length==0)returnundefined;返回this.log[this.log.length-1];}}删除obj.latest;console.log(obj);二、Set方法1、Functionset关键字将对象属性与函数绑定。当属性值改变时,执行相应的函数。//语法1{setprop(val){...}}//语法2{设置[表达式](val){...}}2.示例:语法1constlanguage={setcurrent(name){this.log.push(name);},log:[]};language.current='EN';language.current='FA';console.log(language.log);//预期输出:Array["EN","FA"]3.示例:语法2使用表达式作为属性名称。constexpr="foo";constobj={baz:"bar",set[expr](v){this.baz=v;}};console.log(obj.baz);//“酒吧”对象。foo="变化";//运行setterconsole.log(obj.baz);//"change"4.动态添加setpropertyconstlanguage={log:[]};//1.添加setObject.defineProperty(language,"calc",{set:function(x){this.a=x/2;}});language.calc=5;console.log(language.a);//输出:2.55,删除setAttributeconstlanguage={setcurrent(name){this.log.push(name);},log:[]};language.current='EN';language.current='FA';//删除setdelete语言。current;console.log(language)3.参考方法JavaScript的get和set方法详解
