5
Vielleicht ist diese Frage einfach, aber ich kann jetzt nicht verstehen.Die Vererbung von Javascript
String.prototype.self=function()
{
return this;
}
var s="s";
alert("s".self()=="s".self()) //false;
alert(s.self()==s.self()) //false;
Wenn Sie den Grund wissen, bitte sagen Sie mir, warum das Ergebnis "falsch" ist.
Warum das zweite Beispiel fehlschlagen? –
@Graphain im Ausdruck 's.self() == s.self()', wird der in der 's'-Variable enthaltene Wert zweimal um' ToObject' erzwungen, da 's' ein Primitiv hält, wenn der Punkt ('.') property accessor verwendet wird, wird zum Objekt gezwungen, um auf die' String.prototype'-Member zugreifen zu können. Der Vergleich wäre in etwa äquivalent zu 'var s =' s '; new String (s) == new String (s); 'was auch' false' ergibt. – CMS
@Graphain in Layman Bedingungen, obwohl beide String-Objekte die gleichen Daten enthalten, sind sie verschiedene Objekte und somit == false. – Stephen