Я проверял некоторый код библиотеки JS и узнал, что использует функцию прототипа. Из основного объекта, такого как Object.prototype.toString.call(a, this)
(здесь a - это объект). Так возможно ли присвоить значение null
в основном прототипе объекта, например Object.prototype = null
?
Object.prototype не доступен для записи. Так нет. На самом деле ни один из встроенных прототипов не доступен для записи.
Вы можете попробовать прямо здесь:
console.log(typeof Object.prototype.toString); //"function"
Object.prototype = null;
console.log(typeof Object.prototype.toString); //not nullified - still "function"
console.log(typeof String.prototype.substring); //"function"
String.prototype = null;
console.log(typeof String.prototype.substring); //same
__proto__
созданного экземпляра). Это отличается от создания поля прототипа самого встроенного типа Object как нулевого (что невозможно).
var obj = Object.create(null);
, Это полезно при итерации этих объектов без.hasOwnProperty()
.