【发布时间】:2017-05-27 00:32:09
【问题描述】:
假设对象可以包含自己的名为“hasOwnProperty”的属性:
> a={abc: 123};
{ abc: 123 }
> a.hasOwnProperty("abc");
true
> a['hasOwnProperty'] = 1;
1
> a.hasOwnProperty("abc");
TypeError: a.hasOwnProperty is not a function
...
如果您考虑 Object.keys()、Object.assign() 等,这可行,有点丑陋的界面。那么,有没有更好的方法?
> Object.hasOwnProperty.call(a, "abc");
true
> Object.hasOwnProperty.call(a, "hasOwnProperty");
true
为什么解决方案不应该是唯一推荐的方法?直接从一个对象中使用方法似乎是一个失败的秘诀,尤其是如果它包含外部数据(不受控制)
【问题讨论】:
标签: javascript