JavaScript-Schlüsselwort "this" und Closure Compiler-Warnungen
Ich habe Produktionscode, den ich jetzt mithilfe der erweiterten Option mit dem Closure Compiler zu minimieren versuche. Der Code verwendetPauls clientseitige Cookie-Bibliotheken. Der Compiler generiert über 30 dieser Warnungen:
JSC_USED_GLOBAL_THIS: dangerous use of the global this object
Hier sind einige Codeausschnitte aus der Paul-Bibliothek (der ursprüngliche Code verwendet benannte Funktionen, keine anonymen Funktionen):
var cookieObject = function (name, expires, accessPath) {
var i, j
this.name = name
this.fieldSeparator = "#"
// this.found = false
this['found'] = false; // don't allow Closure-Compiler to rename
this.expires = expires
this.accessPath = accessPath
this.rawValue = ""
this.fields = new Array()
this.fieldnames = new Array()
if (arguments.length > 3) { // field name(s) specified
j = 0
for (i = 3; i < arguments.length; i++) {
this.fieldnames[j] = arguments[i]
j++
}
this.fields.length = this.fieldnames.length
}
this.read = ucRead // function assignments
this.write = ucWrite
this.remove = ucDelete
this.get = ucFieldGet
this.put = ucFieldPut
this.namepos = ucNamePos
this.read()
}; // cookieObject
Dasuc Funktionen sind normalerweise so aufgebaut:
var ucRead = function () {
var search = this.name + "="
var CookieString = document.cookie
this.rawValue = null
this.found = false
}
ich habe gelesenWie funktioniert dieses Schlüsselwort in einem JavaScript-Objektliteral? ebenso gut wieClosure Compiler Warnung vor gefährlicher Verwendung des globalen "this" -Objekts? undGültigkeitsbereich in JavaScript. Ich verstehe jedoch immer noch nicht, in welchem Umfangthis
Im obigen Code steht noch, wie ich diesen Code umschreiben würde, um die Compiler-Warnungen zu beseitigen.
Frage 1: Kann mir jemand erklären, in welchem Umfangthis
ist?
F2: Kann jemand einige Codefragmente bereitstellen, die zeigen, wie die obigen umgeschrieben werden können, um die Compiler - Warnungen zu beseitigen (ich nehme die Verwendung von an)?this
muss beseitigt werden)?
TIA.