gpt4 book ai didi

javascript - 为什么在 Javascript 中调用方法与调用 getter/setter 方法不同

转载 作者:行者123 更新时间:2023-12-01 03:00:48 29 4
gpt4 key购买 nike

例如,这是一段代码

let myQuestion = {
_greeting: 'Hello',

sayHello() {
console.log(this._greeting);
},

get sayHelloWithGet() {
console.log(this._greeting);
}
};

myQuestion.sayHello();
myQuestion.sayHelloWithGet;

两者都做了同样的事情,都叫方法,但为什么用法不同呢?

最佳答案

...both of them are called method...

通常不会。通常 getter 和 setter 被称为 getter 和 setter,或者统称为“访问器”(但有时也称为“访问器方法”)。

...but why different usage?

因为这就是重点:有时您需要在使用时使用不同的语义,看起来像简单的属性访问,即使它在幕后运行一个函数。方法是动词,非方法属性是名词。

(当然,当将函数调用伪装成属性访问时,程序员有责任确保读取属性的成本较低。)

<小时/>

模糊相关:具有访问器的属性也包含在各种序列化中,而引用函数的属性通常不包含在内。示例:

var o = {
get foo() {
return 42;
},
bar() {
return 67;
}
};
console.log(JSON.stringify(o));

关于javascript - 为什么在 Javascript 中调用方法与调用 getter/setter 方法不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46442751/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com