在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时,您需要遵循以下规则:
- setter名称可以是string或number。
- setter必须只有一个输入参数。
- 应该只有一个setter具有相同的标识符在一个对象
- 您可以删除一个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来读取返回动态计算值的属性的值。如果您需要读取以下条件的属性值:
- 该属性将返回动态计算值
- 该属性的内部值不应被反映,而无需调用方法显式
要实现这两个要求,您应该使用getter。考虑下面的代码:
var foo = {名字: jason'获取名称 () {这个还回去。“beres” 名称;}}console.log(foo.Name);
在上面的代码中,您使用getter来计算name属性的值。在这里,您将获得jason beres的输出。
在创建getter时,您需要记住以下规则:
- getter名称可以是字符串或数字。
- getter不能有任何输入参数-它必须有完全零参数。
- 应该只有一个getter具有相同的标识符在一个对象
- 您可以删除一个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