Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
document.addEventListener('event', function(){
console.log('будет вызвано только раз');
document.removeEventListener('event', arguments.callee);
});
document.addEventListener('click', function documentClickOnce(){
alert('будет вызвано только раз');
document.removeEventListener('click', documentClickOnce, false);
}, false);Не вариант?addEventListener, removeEventListener ;)arguments.caller и arguments.callee
Эти «полезные свойства» (от пер. никогда не применял их) запрещены в Strict Mode.
это какое? о0
delete varNameкостыли. лучше бы нормальные инструкции процессору ввели. как в той же явеJavaScript развивается в направлении с сохранением полной совместимости со старыми версиями. К тому же
"use string" вполне нормальная инструкция интерпретатору (не /*# use strict */ же писать).некорректное использование deleteЭто если попытаться удалить объект с флагом
configurable: false раньше он назывался DontDelete"use strict";
var a = {};
Object.defineProperty(a, 'qqq', {});
delete a.qqq; // TypeError: Cannot delete property 'qqq' of #<Object>вызывающую функцию не узнатьне использовать такой подход, мне интересно в каких случаях без
arguments.caller ну никак вообще?function( id, blabal){
ensureTypes(id, 'PositiveInteger')(blabla: 'String');
}то можно обойтись и без caller. А вот передавать значение переменной косвенно по имени ссылки в контексте — это изврат извратов, любой сжимальшик js сделает из вашего кода баг.это какое? о0
JavaScript Strict Mode