【发布时间】:2016-05-24 03:47:44
【问题描述】:
我在第 6.1.4 节 Object.create() 中引用了 JavaScript Definitive Guide 一书中的这句话。以下陈述对我来说似乎不清楚。
你可以传递 null 来创建一个没有原型的新对象,但是如果你这样做,新创建的对象将不会继承任何东西,甚至不会继承像 toString() 这样的基本方法(这意味着它不会工作也可以使用 + 运算符)
var o2 = Object.create(null) // o2 inherits no props or methods.
此时,我在想“哇哦”。当您设置 Object.create(null) 时,它不继承任何基本方法。所以,我试着在控制台上试一试,看看这是否真的是这种行为。我运行了下面的脚本,得到了意想不到的结果。
var o2 = Object.create(null);
o2.number = 1;
console.log(o2.number.toString()); // "1"
当我运行这段代码时,我认为 .toString 不起作用。我有点困惑,或者可能不明白这里的情况如何。我想知道是否有人可以为我解决问题。任何帮助将不胜感激,并感谢您花时间阅读我的问题。 :)
【问题讨论】:
-
Object.getPrototypeOf(o2.number) === Number.prototype
标签: javascript oop object methods javascript-objects