Ich Objekt wie folgt erstreckt:Was ist der Unterschied zwischen `this instanceof String` und` foo` instanceof String`?
Object.prototype.is_a = function (x) {
return this instanceof x;
}
Alle Arbeiten wie
erwartet"foo".is_a(String) // true
"foo".is_a(Object) // true
"foo".is_a(Array) // false
"foo".is_a(Function) // false
"foo".is_a(Boolean) // false
"foo".is_a(Date) // false
"foo".is_a(Number) // false
"foo".is_a(RegExp) // false
aber, wenn
"foo" instanceof String // false
this
Schlüsselwort auf der is_a()
Funktion gleich wie foo
richtig ist? Warum gibt es andere Ergebnisse?
@WiktorZychla ich eine Vorspannung haben, so könnte ich falsch sein. Aber ich bin mir nicht sicher, ob das ein Duplikat ist. Es gibt Überschneidungen, aber hier geht es auch um [boxen] (http://en.wikipedia.org/wiki/Object_type_ (objektorientierte_programmierung) #Boxing) und nicht nur um 'instanceof' mit Primitiven. –