Function.prototype // function Empty() {}
Как это имеет смысл? Например, если мы возьмем объект Number
, мы увидим, что его прототип (Number.__proto__
) равен Function.prototype
, который включает в себя метод, такой как apply
и call
. Как я могу использовать Number.apply(..)
, если прототип Number - это пустая функция, а не обычный прототип объекта, как все остальные прототипы? (Прототип числа, прототип String, любой другой пользовательский прототип - это объекты, даже Object.prototype - это объект).Почему прототип функции - это функция и почему объект наследуется оттуда?
После этого, как это имеет смысл, что Object.__proto__ == Function.prototype
? Объект должен быть самым высоким объектом, как он наследует от Function.prototype
, когда Function
наследует от .. Object.prototype
!
Object instanceof Function // true
Function instanceof Object // of course true
Function instanceof Function // true
Номер .__ proto__? У экземпляров есть свойство .__ proto__, а не конструктор –
@JuanMendes, Number - это экземпляр. каждый объект имеет '__proto__'. – Luis
Я думаю, что ваш второй пункт адресован в этом [ответе] (http://stackoverflow.com/questions/650764/how-does-proto-differ-from-constructor-prototype/11249437#11249437) и его комментариях. –