Warum Aufruf von Person im Fensterbereich "[Object Object]" zurückgibt, während Aufruf im Objektbereich Object zurückgibt.Warum Aufruffunktion in Fensterbereich unterscheidet sich von Objektbereich
Antwort
global window
Objekt haben bereits eine Eigenschaft von name
, und es ist in den Anwendungsbereich der nativen Code.
window.name
ist ein Getter/setter den Namen des Fensters einzustellen. Als solche muss es vom Typ string
sein.
Try this:
Sie werden sehen, dass jetzt window.name
wird auf "something,else"
; Das ist das Ergebnis von Array.toString()
.
Genau das passiert hier. Wenn Sie eine object
toString
anrufen, erhalten Sie [object Object]
.
Ihr Programm funktioniert einwandfrei, wenn Sie nicht den vordefinierten window.name
Getter/Setter verwenden.
function Person(first, last) {
this.something = {
first,
last
};
}
f = {};
Person.call(f, "fsd", "fsd");
console.log(f.something);
g = window;
Person.call(g, "fsd", "fsd");
console.log(g.something);
Mehr auf Getter/Setter in javascript:
Setters: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/set
Getter: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/get
- 1. Warum unterscheidet sich {} + [] von ({} + [])?
- 2. Warum unterscheidet sich std :: uint32_t von uint32_t?
- 3. Warum git AuthorDate unterscheidet sich von CommitDate?
- 4. Warum unterscheidet sich strcat (mystring) von mystring?
- 5. Warum sich AsyncLocal von CallContext unterscheidet
- 6. $ Verbindung Objektbereich in WordPress
- 7. LocalEulerAngle unterscheidet sich von Inspektor
- 8. Warum unterscheidet sich die Kameraansicht in optix von OpenGL?
- 9. Warum unterscheidet sich sample() in SparkR von R?
- 10. Warum unterscheidet sich meine iPhone 6 Bildschirmauflösung?
- 11. Warum unterscheidet sich die Strichstärke von SVG von der Rahmenbreite?
- 12. Bash: Warum unterscheidet sich der Wert von $ {@: - 1} von $ {@: -1}?
- 13. Warum PHP md5 unterscheidet sich von OpenSSL md5?
- 14. Warum Ruby Modulo unterscheidet sich von Java/andere Sprache?
- 15. SQLite3 - Warum LEFT JOIN unterscheidet sich von anderen RDBMSes?
- 16. Warum unterscheidet sich die Assistentvorschau von der echten Ansicht?
- 17. Warum unterscheidet sich $ (Dokument) .height() von $ (document.body) .height()?
- 18. Warum unterscheidet sich ein SQL-Float von einem C# -Floss
- 19. Warum unterscheidet sich die Skalierung von Steuerungen zwischen PCs?
- 20. Warum unterscheidet sich mein vim-Befehlszeilenpfad von meinem Shell-PATH?
- 21. Warum unterscheidet sich Windows Run: von der CMD-Zeile?
- 22. Warum unterscheidet sich die manuelle Einrichtungszeit von der aktuellen Uhrzeit?
- 23. Warum unterscheidet sich die Adresse von argc bei jedem Programmlauf?
- 24. ExtJS Aufruffunktion von Objektdeklaration
- 25. warum slice Druck mit fmt.Println (slice) unterscheidet sich in Golang
- 26. Mausklick in Nicht-Objektbereich von CListBox
- 27. Wie unterscheidet sich SystemVerilog 0 von '0?
- 28. Subprozess pid unterscheidet sich von ps output
- 29. php curl - Ergebnis unterscheidet sich von Browser
- 30. Warum unterscheidet sich das Datumsformat in verschiedenen Geräten?
Nun, einfach nicht tun 'Person.call (Fenster, ...) '. Das wird versuchen, 'window.name' zu setzen. Und nein, das hat nichts mit Scopes zu tun - wenn Sie sich auf das Schlüsselwort 'this' beziehen, ist das der * Kontext * oder * Empfänger * des Calls. – Bergi