Palabra clave de JavaScript "this" y advertencias de Closure Compiler

Tengo un código de producción que ahora estoy tratando de minimizar con el compilador de cierre utilizando la opción avanzada. El código utilizaBibliotecas de cookies del lado del cliente de Paul. El compilador genera más de 30 de estas advertencias:

JSC_USED_GLOBAL_THIS: dangerous use of the global this object

Aquí hay algunos fragmentos de código de la biblioteca de Paul (el código original usa funciones con nombre, no funciones anónimas):

  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

losuc Las funciones se construyen típicamente de esta manera:

  var ucRead = function () {
        var search = this.name + "="
        var CookieString = document.cookie
        this.rawValue = null
        this.found = false
  }

he leído¿Cómo funciona la palabra clave “this” dentro de un objeto literal de JavaScript? tanto comoCompilador de cierre Advertencia: ¿uso peligroso del objeto global "this"? yAlcance en JavaScript. Sin embargo, todavía no entiendo cuál es el alcance dethis no está en el código anterior ni en cómo volvería a escribir este código para eliminar las advertencias del compilador.

P1: ¿Puede alguien aclararme cuál es el alcance dethis ¿es?

P2: ¿Puede alguien proporcionar algunos fragmentos de código que muestren cómo se puede volver a escribir lo anterior para eliminar las advertencias del compilador (asumo el uso dethis tiene que ser eliminado)?

TIA.

Respuestas a la pregunta(1)

Su respuesta a la pregunta