gpt4 book ai didi

javascript - 如何判断 ES6 类是否有给定名称的 getter?

转载 作者:行者123 更新时间:2023-12-03 07:05:13 25 4
gpt4 key购买 nike

似乎 ES6 类没有像预期的那样响应 .hasOwnProperty 。

如果你有这个类(class):

class Foo {
get index() {
return 12;
}
}

此代码将返回 false:
let myFoo = new Foo();
alert(myFoo.hasOwnProperty("index"); <-- alerts "false"

我可以测试一个属性是否返回“未定义”,但这不会区分返回未定义的“get”和没有具有给定名称的方法的类对象,即
class Foo {
get index() {
return 12;
}
get position() {
return undefined;
}
}

测试 ES6 类上是否存在“getter”或“setter”的正确方法是什么?

最佳答案

JavaScript 中的类有点奇怪,因为它基本上只是原型(prototype)继承。所以在这种情况下,index应该存在于 myFoo 的原型(prototype)上:

class Foo {
get index() {
return 12;
}
}
const myFoo = new Foo();
myFoo.hasOwnProperty('index'); // false
Object.getPrototypeOf(myFoo).hasOwnProperty('index'); // true

关于javascript - 如何判断 ES6 类是否有给定名称的 getter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59275974/

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