【发布时间】:2018-06-11 19:22:21
【问题描述】:
抱歉,这个问题可能有重复,但 {} 使搜索变得困难,或者没有人这样问过。有什么区别:
var a = {};
和
var b = Object.create({});
使用 Google Dev Tool 看起来非常相似(即使使用 dir(a)、dir(b))
【问题讨论】:
-
我猜你的意思是
Object.create(null);? -
你的意思是
Object.create({})和Object.create(null)做同样的事情吗? -
不,
{}和Object.create({});做几乎相同的事情 (Object.create({}); 在 _proto_中创建 _proto_ >,这真的没有意义)。Object.create(null)创建一个空对象字面量(就像其他两个字面量一样),但原型上没有任何内容。 jsfiddle.net/dyqs7xLb。使用 Object.create(null) 被认为更安全,尤其是在使用for in循环时 -
当他们使用
Object.create({});时,他们做错了什么 -
错误是一个苛刻的词... :-) 假设它没有任何意义。我不确定它会引入哪些错误(如果有的话)。但我很确定他们想使用新的
Object.create(null)并将其与Object.create({})混淆。我没有看到使用它的任何好处..
标签: javascript