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
具有服务属性,但没有。 最佳答案
就像在class
中直接定义的任何方法一样,它是原型的属性,而不是对象本身的属性。检查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
属性-访问class3Instance.service
时,解释器会在class3Instance
的内部原型上找到该属性名称,而不是在class3Instance
本身上找到。