Недавно я играл с объектом-прототипом javaScript и наткнулся на приведенный ниже пример.
function Foo(){
}
Foo.prototype=null;
var fooObj=new Foo();
Когда я смотрю на fooObj из инструментов разработчика, свойство __proto__
указывает на прототип глобального объекта, и я могу получить доступ ко всем свойствам и функциям, определенным в объекте-прототипе объекта. который должен указывать на объект-прототип функции Foo, поскольку я присвоил ему значение null, я ожидал, что __proto__
будет указывать на null, указание __proto__
может иметь больше смысла, но я хочу понять, как значение присваивается __proto__
после создания объекта? что заставляет его указывать объект-прототип Object?
Я видел много вопросов по прототипу и прототипу, но ни один из них не решает моих сомнений.
null
илиundefined
или чему-то еще, кроме объекта, рассматривается как особый случай. Я знаю, например, что объекты пользовательской земли сnull
__proto__
были невозможны доObject.create
в ES5. - person Ben Aston   schedule 08.08.2017