好程序员-千锋教育旗下高端IT职业教育品牌

400-811-9990
  • 客服QQ
  • 官方微信

    好程序员

    专注高端IT职业培训

[HTML5] 好程序员web前端学习路线之在JavaScript中使用getters和setter

[复制链接]
31 0
叶子老师 发表于 前天 17:04 | 只看该作者 |阅读模式 打印 上一主题 下一主题
  好程序员web前端学习路线之JavaScript中使用getters和setter,大多数面向对象的编程语言都存在getter和setter,包括JavaScript。它们是代码构造,可帮助开发人员以安全的方式访问对象的属性。使用getter,您可以从外部代码访问“获取”)属性的值,而setter允许您更改“设置”)它们的值。我们将向您展示如何在JavaScript中创建getter和setter。
  JavaScript对象可以具有多个属性和存储的静态数据和动态功能的方法。属性是静态键值对,而方法是特定于对象的函数。
  例如,Car.color可以是属性,而Car.drive()可以是Car对象的方法。使用getter,您可以访问Car对象的color属性,使用setter,您可以修改其值(例如,从蓝色变为黑色)。
  使用getter和setter,您只能获取和设置属性的值,而不能获取方法,因为方法不是静态的。
  您可以通过三种不同的方式创建getter和setter:
1. 使用默认方法语法(getter和setter方法),
2. 使用get和set关键字,
3. 使用Object.defineProperty()方法。
  
Getters和Setters
Getters和Setters使你可以快速获取或设置一个对象的数据。一般来说,一个对象拥有两个方法,分别用于获取和设置某个值,比如:
{
  getValue: function(){
  return this._value;
  },
  setValue: function(val){
  this._value = val;
  }
}
用这种方式写JavaScript的一个明显的好处是:你可以用它来隐藏那些不想让外界直接访问的属性。
吸气方法
获取对象属性的最简单方法是使用每个属性的默认方法语法定义getter。让我们看一个如何使用这种技术创建getter的示例。该MYCAR对象有两个属性:颜色制作。这是您使用对象文字创建它的方法:
var myCar = {   
    color:“blue”,
    make:“Toyota”
};
如果需要,可以使用以下代码直接访问颜色并创建属性:
myCar.color;
// 蓝色
myCar.make;
//丰田
尽管这种技术有效,但使用getter而不是直接调用属性具有许多优点。例如,您可以在检索其值之前对属性执行操作或检查(例如  if-else语句)。
关于get关键字最重要的一点是它定义了一个访问器属性,而不是一个方法。因此,它不能与存储其访问的值的数据属性具有相同的名称。在上面的代码中,defColor 和defMake是数据属性,而color和make是访问器属性。
这也是为什么你需要使用在getter名称之后不使用括号的属性语法来调用getter的原因(例如myCar.color)。
由于旧版IE8不支持get关键字,因此如果您需要支持旧版浏览器,请使用getter方法。
结论
在创建JavaScript对象时,您不一定必须使用getter和setter,但在许多情况下它们可能会有所帮助。最常见的用例是(1)保护对数据属性的访问,以及(2)在获取或设置其值之前向属性添加额外的逻辑。
好程序员web前端培训:http://www.mygod78.com/

精彩内容,一键分享给更多人!
收藏
收藏0
转播
转播
分享
淘帖0
支持
支持0
反对
反对0
您需要登录后才可以回帖

本版积分规则

关注我们
千锋好程序员

北京校区(总部):北京市海淀区宝盛北里西区28号中关村智诚科创大厦

深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619

杭州龙驰智慧谷校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层

郑州校区:郑州市二七区航海中路60号海为科技园C区10层、12层

Copyright 2007-2019 北京千锋互联科技湖南福彩网 。All Right

京ICP备12003911号-5 京公安网11010802011455号

请您保持通讯畅通1对1咨询马上开启

湖南福彩网 上海福彩网 辽宁福彩网 上海福彩网 江苏福彩网 西藏福彩网 湖南福彩网 西藏福彩网 淅江福彩网 西藏福彩网