JS的getter和setter
let o = {name:’liubofang’,get onlyRead(){ //在对象中定义一个 onlyRead的 get方法return ‘只读属性’;},set onlyWrite(value){ //在对象中定义一个 onlyWrite的 set方法return value;},}
o.onlyRead = ‘设置只读属性’; //由于没有定义 set 方法 这里的修改不起作用alert(o.onlyRead) // 内部调用了gettert 方法 既是 get onlyRead()
o.onlyWrite = ‘设置只写属性’; //内部调用了 setter方法 既是 set onlyWrite()alert(o.onlyWrite) // 由于没有定义 get 方法 onlyWrite的值 永远是undefined
//getter 和 setter 实际用途
let s = {_test:”,get test(){/*这里可以进行一些逻辑/格式化操作*/return this._test + ‘/helloWorld’;},set test(value){/*这里可以进行一些逻辑/格式化操作*/this._test = ‘http://’ + value;}}
/*通过定义了s对象的代码可以看出 我们通过定义一个 _test属性来作为媒介 采用get 和 set方法 来对_test属性进行 读取和设置。一搬情况下 我们不会对 _test 属性进行直接操作(this._test = xxx)。 而是通过getter和setter方法来对数据进行操作。比如:我们希望在 setter或者getter的时候 格式化数据:this.test = ‘www.baidu.com’;alert(this.test); // 实际输出时 则是 http://www.baidu.com*/
s.test = ‘www.baidu.com’; //内部调用了setter方法 前面自动加上了 http://alert(s.test); // http://www.baidu.com/helloWorld //内部调用了getter方法 后面自动加上了 /helloWorldalert(s._test); // http://www.baidu.com _test属性真实的值
点击下载该实例代码 : getter和setter代码文件
本站文章除注明转载外,均为原创文章。转载请注明:文章转载自:
葱爆GIS—刘博方GIS博客(
https://liubf.com )