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