首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reflect.getMetadata和Reflect.getOwnMetadata有什么不同?

Reflect.getMetadata和Reflect.getOwnMetadata有什么不同?
EN

Stack Overflow用户
提问于 2018-01-30 04:22:06
回答 1查看 5.1K关注 0票数 10

正如标题中所说:reflect-metadata API提供了一个getMetadata方法和一个getOwnMetadata -这里有什么区别?hasOwnMetadata也是如此,等等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-30 05:34:09

通常,Own版本和常规版本之间的区别在于查找是否继续沿着原型链向上。在自己的版本中,只找到专门在目标对象上定义的元数据。在常规版本中,如果元数据没有在目标对象上定义,则返回在对象原型上定义的元数据。

示例:

代码语言:javascript
复制
@Reflect.metadata("key", "base value")
class B {
    get prop(): number { return 0; }
}

class C extends B{ }

// "base value", metadata was not defined on C but was defined on it's prototype B
console.log(Reflect.getMetadata("key", C)); 

// undefined, metadata was not defined on C
console.log(Reflect.getOwnMetadata("key", C)); 
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48509376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档