class Class3 {
get service() {
return 'service'
}
}
const class3Instance = new Class3()
console.log(class3Instance.service)
console.log(class3Instance)
// ? clas3Instance had Semi transparent service
var descriptor = Object.getOwnPropertyDescriptor(class3Instance, 'service')
console.log(descriptor, "descriptor")
// ? undefined
我希望class3Instance
具有服务属性,但没有。
答案 0 :(得分:2)
就像直接在class
内部定义的任何方法一样,它是 prototype 的属性,而不是对象本身的属性。检查Class3.prototype
或Object.getPrototypeOf(class3Instance)
的描述符:
class Class3 {
get service() {
return 'service'
}
}
const class3Instance = new Class3()
var descriptor = Object.getOwnPropertyDescriptor(Class3.prototype,'service')
console.log(descriptor,"descriptor")
class3Instance
对象没有service
的 own属性-当访问class3Instance.service
时,解释器会在以下对象的内部原型中找到该属性名称: class3Instance
,而不是class3Instance
本身。