Jaka jest różnica w wywołaniu „this” w tych przykładach?

Czytam „JS: The Good Parts” Crockforda. Ma na to dwa przykłady i nie rozumiem, dlaczego w jednym przypadku używathis w innym używathat.

Pierwszy przykład:

String.method('deentify', function() {
    var entity = {
        quot:   '"',
        lt:     '<',
        gt:     '<'
    };

    return function() {
        return this.replace(/&([^&;]+);/g,
            function (a, b) {
                var r = entity[b];
                return typeof r === 'string' ? r : a;
            }
        );
    };
}());
document.writeln('&lt;&quot;&gt;'.deentify()); 

Drugi przykład:

Function.method('curry', function() {
    var args = arguments, that = this;
    return function () {
        return that.apply(null, args.concat(arguments));
    };
});
var add1 = add.curry(1);
document.writeln(add1(6));

Dlaczego pierwszy przykład ma dostęp?this bezpośrednio? Jaka jest różnica między tym przykładem a tym, który następuje po nim?

questionAnswers(1)

yourAnswerToTheQuestion