Зарезервированные ключевые слова javaScript

Мне интересно, как управляются зарезервированные ключевые слова / функции JavaScript.

Пример:

Согласно:

http://www.quackit.com/javascript/javascript_reserved_words.cfm

delete - зарезервированное ключевое слово JavaScript.

Затем рассмотрим следующий фрагмент для некоторого контекста:

var cookieManager = {
    get: function (name) { 
        // function contents ...
        console.log("cookieManager.get() called");
        return true;
    },
    set: function (name, value, days) {
        // function contents ...
        console.log("cookieManager.set() called");
        return true;
    },
    delete: function (name) { 
        // function contents ...
        console.log("cookieManager.delete() called");
        return true;
    }
};

Этот объект имеет свойство delete , но его имя зарезервировано JavaScript, поэтому он должен завершиться неудачно, верно?

Но когда я выполняю cookieManager.delete (); в веб-консоли из FireFox я получаю следующий вывод, предполагающий, что он работает нормально:

[11:26:00.654] cookieManager.delete();
[11:26:00.656] cookieManager.delete() called
[11:26:00.657] true

Если, однако, вы запустите код в JsLint , он говорит

Problem at line 12 character 5: Expected an identifier and instead saw 'delete' (a reserved word).

delete: function (name) { 

Предполагая, что это большой нет-нет подход, которого следует избегать.

Итак, когда мне следует принимать во внимание зарезервированные ключевые слова, как в в этом примере он, кажется, работает так же, как я хочу (ключевое слово delete находится в контексте объекта cookieManager и поэтому не вызывает конфликтов, поэтому его можно использовать) или мне следует придерживаться Библии, которая называется JsLint и переименовать все, что является зарезервированным ключевым словом, с помощью javascript? В этом контексте я мог бы легко переименовать .delete () в .remove ().

7
задан Willem 23 July 2011 в 09:39
поделиться