Мне интересно, как управляются зарезервированные ключевые слова / функции 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 ().