跳至正文
首页 » 博客 » Easy JavaScript Part 8: What are getters and setters?

Easy JavaScript Part 8: What are getters and setters?

在JavaScript中,你可能听说过getter和setter。让我们来看看这些东西是什么。

首先,使用setter设置属性的值。每次更改属性值时都会调用setter。换句话说,每次更改setter函数内使用的属性时,它都会执行一个函数。看看下面的代码:

var foo = {设置cal(x) {这个 .a = x 5},a: 未定义} foo.ca l = 8;console.log(foo.a); 

在对象foo中,每次更改属性a时都会调用setter cal。作为输出,您将获得13打印。在创建setter时,您需要遵循以下规则:

  1. setter名称可以是string或number。
  2. setter必须只有一个输入参数。
  3. 应该只有一个setter具有相同的标识符在一个对象
  4. 您可以删除一个setter使用删除运算符

对于setter的其他示例,让我们看一下以下代码:

var问候 = {设置欢迎 (m) {这个 .msg = 这个。msg m;},“你好”}greet.welcome = "Jaosn";console.log(greet.msg); 

对于上面的代码片段作为输出,将打印Hello Jason。还可以使用object.Defineproperty将setter添加到现有对象中。假设你有一个foo对象:

var foo = {num: 0}

现在要为现有对象foo添加一个setter,请使用object.Definepproperty。

Object.de fineProperty(foo, 'cal', {设置: 函数 (x) {这个 .num = 这个。num x;}});foo.ca l = 9;console.log(foo.num); // 9 

上面,您正在向现有对象添加setter,您将获得9作为输出。

JavaScript getter

使用JavaScript getter,您可以在每次读取属性时调用一个函数。所以,如果你想调用一个函数,JavaScript将在每次查找对象时使用getter。考虑下面的代码:

var cal = {编号: 0,获取add() {这个还回去。数字5;}}console.log(cal.add);

在上面的代码中,您的输出将是属性num的计算值。主要是,您将使用getter来读取返回动态计算值的属性的值。如果您需要读取以下条件的属性值:

  1. 该属性将返回动态计算值
  2. 该属性的内部值不应被反映,而无需调用方法显式

要实现这两个要求,您应该使用getter。考虑下面的代码:

var foo = {名字: jason'获取名称 () {这个还回去“beres” 名称;}}console.log(foo.Name);

在上面的代码中,您使用getter来计算name属性的值。在这里,您将获得jason beres的输出。

在创建getter时,您需要记住以下规则:

  1. getter名称可以是字符串或数字。
  2. getter不能有任何输入参数-它必须有完全零参数。
  3. 应该只有一个getter具有相同的标识符在一个对象
  4. 您可以删除一个getter使用删除运算符

还可以使用object.Definepproperty将getter添加到现有对象。让我们说你有一个对象foo:

var foo = {num: 1} 

若要为现有对象foo添加getter,请使用object.Definepproperty

Object.de fineProperty(foo, 'numgetter',{get: function () {这个还回去。num 1;}});console.log(foo.numgetter); // 2 

正如你可以看到上面,你添加一个吸气剂到现有的对象,你的输出将2

结论

对getter和setter有很好的理解对于在JavaScript中使用对象是必要的。使用setter,您可以在每次更改属性值时调用函数; 使用getter,您可以返回属性的计算值。就这样!

不要忘记查看Ignite UI for JavaScript/HTML5和ASP.NET MVC ,您可以将其与HTML5,Angular,React和ASP.NET MVC一起使用来创建富Internet应用程序。您可以免费下载试用版我们所有的JavaScript控件!</p