Ich habe gesehen, dass das folgende Beispiel dies erklärt Website und dachte, beide Antworten wären 20 und nicht die 10, die zurückgegeben wird. Er schrieb, dass sowohl das Komma als auch die Zuweisung einen Wert und keine Referenz zurückgeben. Ich verstehe nicht ganz, was das bedeutet.
Ich verstehe es in Bezug auf die Übergabe von Variablen in Funktionen oder Methoden, d.h. primitive Typen werden als Wert und Objekte als Referenz übergeben, aber ich bin nicht sicher, wie es in diesem Fall gilt.
Ich verstehe auch über den Kontext und den Wert von 'this' (nach Hilfe von Stackoverflow), aber ich dachte, in beiden Fällen würde ich immer noch es als eine Methode, foo.bar() aufrufen, was bedeuten würde, dass foo der Kontext ist, aber es scheint, dass beide zu einem Funktionsaufruf bar() führen.
Warum ist das so und was bedeutet das alles?
var x = 10;
var foo = {
x: 20,
bar: function () {return this.x;}
};
(foo.bar = foo.bar)();//returns 10
(foo.bar, foo.bar)();//returns 10
1 Stimmen
(foo.bar = foo.bar)()
es also kommt auf meine Liste der Interviewfragen! ^.^0 Stimmen
@Ben: Nicht
(foo.bar, foo.bar)()
? ;-) Ich meine, wenn Sie esoterisch wollen...11 Stimmen
@Ben - Lassen Sie mich wissen, für wen Sie arbeiten, damit ich nicht den Fehler mache, zu einem Vorstellungsgespräch zu kommen:)