Lesen Sie mehr über Scopes in JavaScript zum Beispiel:
var that = this;
Dann Linie 4 ändern.
Im Java Script gibt es nur einen Bereich innerhalb von Funktionen. Wenn Sie Ihre Variable innerhalb der Funktion mit var angeben, können Sie von außerhalb dieser Funktion nicht darauf zugreifen. Dies ist eine Möglichkeit, private Variablen in JavaScript zu erstellen.
Sie können diese Variable verwenden, die auf das aktuelle Objekt zeigt, in dem Sie sich befinden (dies ist kein Bereich selbst). Aber! Wenn Sie die Funktion ohne neuen Befehl starten, wird dieser auf den äußeren Bereich zeigen (in den meisten Fällen ist es Fensterobjekt = globaler Bereich).
Beispiel:
function foo(){
var a = 10;
}
var f = foo(); //there is nothing in f
var f = new foo(); //there is nothing in f
function bar(){
this.a = 10;
}
var b = new bar(); //b.a == 10
var b = bar(); //b.a == undefined, but a in global scope
Btw Besuche Syntax der Methode anwenden Mozilla docs/apply So können Sie sehen, dass Faust Argument Objekt, das dieses wenn Ihre Methode aufgerufen werden wird.
So dieses Beispiel betrachten:
function bar(){
console.log(this.a);
console.log(this.innerMethod(10));
}
function foo(){
this.a = 10;
this.innerMethod = function(a){
return a+10;
}
bar.apply(this);
}
var f = new foo(); // => you will get 10 and 20 in the console.
var f = foo(); // => you will still get 10 and 20 in the console. But in this case, your "this" variable //will be just a global object (window)
Vielleicht ist es besser
var that = this;
vor Anwendung Aufruf der Methode zu machen, aber vielleicht ist es nicht benötigt wird. nicht sicher
Also, das wird auf jeden Fall arbeiten:
function foo(){
console.log(this.a);
}
jQuery.extend({
somefunc: function(func){
this.a = 10;
func.apply(this);
}
});
$.somefunc(foo); //will print 10.
Und wie Funktionen und Variablen nennen? Verwenden Sie diese.Variable? –
Ist nicht Arbeit: http://gist.github.com/152649 –
Simplefied: (Funktion() {var _this = das; var a = 2; console.log (_this.a);})(); - Wie bekomme ich eine Variable von einer anderen Variable, Hash oder ich weiß nicht was noch ... –