Javascript “什么是”呢;存取器函数“;?

Javascript “什么是”呢;存取器函数“;?,javascript,Javascript,在标准ECMA-262版本中: 根据属性的形式,可以表示值 直接作为数据值(基元值、对象或 函数对象)或通过一对访问器函数间接访问 我不明白“访问器函数”是什么意思,也没有在规范中找到访问器函数的定义。然后我在网上搜索。在我看来,accessor函数的意思是“getter”。但我仍然不明白,为什么属性值“由一对访问器函数”表示?有人能举例说明这一点吗?谢谢 “一对访问器函数”是getter和setter : “一对访问器函数”是getter和setter : 一对访问器函数引用和。您可以间接访问

在标准ECMA-262版本中:

根据属性的形式,可以表示值 直接作为数据值(基元值、对象或 函数对象)或通过一对访问器函数间接访问

我不明白“访问器函数”是什么意思,也没有在规范中找到访问器函数的定义。然后我在网上搜索。在我看来,accessor函数的意思是“getter”。但我仍然不明白,为什么属性值“由一对访问器函数”表示?有人能举例说明这一点吗?谢谢

“一对访问器函数”是getter和setter

:

“一对访问器函数”是getter和setter

:


一对访问器函数引用和。您可以间接访问对象中的某些值,例如:

var person =
{
    get Name()
    {
        return this.name;
    },
    set Name(value)
    {
        this.name = value;
    }
};

person.Name = "X";
console.log(person.Name); // X

一对访问器函数引用和。您可以间接访问对象中的某些值,例如:

var person =
{
    get Name()
    {
        return this.name;
    },
    set Name(value)
    {
        this.name = value;
    }
};

person.Name = "X";
console.log(person.Name); // X
访问器属性是根据getter和setter定义的属性,而不是可能写入的存储值。“访问器函数对”表示getter和setter函数

有关这方面的更多信息,请参见:

对象是属性的集合。每个属性都是一个 命名数据属性、命名访问器属性或内部属性:

  • 命名数据属性将名称与ECMAScript语言相关联 值和一组布尔属性
  • 命名访问器属性将名称与一个或两个访问器相关联 函数和一组布尔属性。访问器函数 用于存储或检索 与属性关联
  • 内部属性没有名称,无法通过直接访问 ECMAScript语言运算符。内部属性的存在纯粹是为了 规范目的
以及:

命名访问器属性将名称与下表中列出的属性相关联:

属性|值|描述
名称|域|
---------+-----------|---------------------------------------------------------
[[Get]]|对象或|如果值是对象,则必须是函数对象。
|未定义|函数的[[调用]]内部方法(8.6.2)为
||使用空参数列表调用以返回
||每次访问属性时的属性值
||表演。
|           |
[[Set]]|对象或|如果值是对象,则必须是函数对象。
|未定义|函数的[[调用]]内部方法(8.6.2)为
||使用包含指定参数的参数列表调用
||每次访问
||财产被执行。财产所有权的效力
||[[Set]]内部方法可以,但不需要,
||对后续调用返回的值有影响
||到属性的[[Get]]内部方法。
|           |
[[Enum-| Boolean |如果为true,则该属性将由中的
rable]]| |枚举(见12.6.4)。否则,该属性将被删除
||称为不可枚举。
|           |
[[Confi-| Boolean |如果为false,则尝试删除属性,更改
gurable]]| |属性为数据属性,或更改其属性
||将失败。
访问器属性是根据getter和setter定义的属性,而不是可能写入的存储值。“访问器函数对”表示getter和setter函数

有关这方面的更多信息,请参见:

对象是属性的集合。每个属性都是一个 命名数据属性、命名访问器属性或内部属性:

  • 命名数据属性将名称与ECMAScript语言相关联 值和一组布尔属性
  • 命名访问器属性将名称与一个或两个访问器相关联 函数和一组布尔属性。访问器函数 用于存储或检索 与属性关联
  • 内部属性没有名称,无法通过直接访问 ECMAScript语言运算符。内部属性的存在纯粹是为了 规范目的
以及:

命名访问器属性将名称与下表中列出的属性相关联:

属性|值|描述
名称|域|
---------+-----------|---------------------------------------------------------
[[Get]]|对象或|如果值是对象,则必须是函数对象。
|未定义|函数的[[调用]]内部方法(8.6.2)为
||使用空参数列表调用以返回
||每次访问属性时的属性值
||表演。
|           |
[[Set]]|对象或|如果值是对象,则必须是函数对象。
|未定义|函数的[[调用]]内部方法(8.6.2)为
||使用包含指定参数的参数列表调用
||每次访问
||财产被执行。财产所有权的效力
||[[Set]]内部方法可以,但不需要,
||对后续调用返回的值有影响
||到属性的[[Get]]内部方法。
|           |
[[Enum-|布尔|如果