Почему настройка свойства prototype для функции конструктора на null не препятствует вызовам объектов, созданных из этой функции, методам на Object.prototype, таким же образом, что установка прототипа на Object.create(null)
Вот почему это так:
function Foo(){}
Foo.prototype = null;
console.log(new Foo().toString); //outputs function toString() { [native code] } (or whatever)
function Foo(){}
Foo.prototype = Object.create(null);
console.log(new Foo().toString); //output undefined