Предположим, что мы имеем следующее:JavaScript isPrototypeOf против использования InstanceOf
function Super() {
// init code
}
function Sub() {
Super.call(this);
// other init code
}
Sub.prototype = new Super();
var sub = new Sub();
Затем, в какой-то другой части нашего OCDE, мы можем использовать одно из следующих действий для проверки отношений:
sub instanceof Super;
или
Super.prototype.isPrototypeOf(sub)
в любом случае, нам нужно иметь как объект (суб), и родительский конструктор (супер). Итак, есть ли какая-то причина, по которой вы бы использовали один против другого? Есть ли какая-то другая ситуация, когда различие более ясно?
Я уже внимательно прочитал 2464426, но не нашел достаточно конкретного ответа.
возможно дубликат [? Почему нам нужно isPrototypeOf вообще] (http://stackoverflow.com/questions/5972991/why-do -we-need-the-isprototypeof-at-all) – plalx
Основываясь на комментарии OP, я бы сказал, что этот вопрос ближе к «Зачем нам вообще нужно« instanceof »? но я согласен, что это, вероятно, достаточно близко. – apsillers