gpt4 book ai didi

javascript - 访问器属性及其函数名称

转载 作者:行者123 更新时间:2023-11-28 13:11:45 25 4
gpt4 key购买 nike

ECMAScript 6 中的所有函数的 name 属性都将具有适当的值。那么访问器属性(getter 和 setter)的那些名称又如何呢?

示例(来自 Understanding ECMAScript 6 书):

var doSomething = function doSomethingElse() {
// empty
};

var person = {
get firstName() {
return "Nicholas"
},
sayName: function() {
console.log(this.name);
}
}

console.log(doSomething.name); // "doSomethingElse"
console.log(person.sayName.name); // "sayName"
console.log(person.firstName.name); // undefined, instead of "get firstName"

你能解释一下为什么person.firstName.name返回undefined吗?

最佳答案

由于 person.firstName 是一个 getter,返回值是 getter 返回的值(示例中的 "Nicholas"),而不是 getter 函数本身,所以你无法以这种方式访问​​其名称。

为了获得对该函数的引用,您可以使用 Object.getOwnPropertyDescriptor :

var person = { 
get firstName() {
return "Nicholas"
},
}

var descriptor = Object.getOwnPropertyDescriptor(person, 'firstName');

console.log(descriptor);
console.log(descriptor.get.name);

关于javascript - 访问器属性及其函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41865554/

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