Если у меня есть следующий код JavaScript:Удалены JavaScript еще исполняемым
<script id="someJS">
var boom = 'boom';
function example(){
alert(boom);
}
</script>
, а затем сделать:
$('#someJS').remove();
я все еще могу назвать example()
, даже если это JavaScript функция больше не внутри DOM ... Как его удалить?
Я не хочу, чтобы нулевые фактические функции и переменные: boom = null; example = null;
, поскольку я не всегда знаю, что находится внутри файла JavaScript. Например, имена функций, переменные и т. Д. Мне нужно уметь исключить энтузиазм того, что было внутри этого тега скрипта.
Update: Для тех, кто хотел бы знать, дело пользователя для этого:
В основном в приложении я работаю, мы имеем обычай JavaScript добавлены для некоторых клиентов, которые при нажатии на кнопку, например, save, а затем проверяет, существуют ли определенные функции, а затем запускает их. Однако, поскольку эта кнопка сохранения является общей, это означает, что пользовательский код вызывается все время после его добавления, даже если оно больше не актуально.
Решение, которое мы придумали (кто-то разместил это как ответ, но они сняли его по какой-то причине) было пространство имен это все, как:
DynamicJS = {
boom: 'boom',
example: function(message) {
alert(message);
}
}
И тогда мы можем просто сделать: delete DyanmicJS
;
Которая удаляет все функции и переменные внутри этого пространства имен из глобальной области, эффективно отменяя то, что добавил файл сценария.
Хотя я уверен, что это не идеальное решение, как если бы у вас были прослушиватели событий внутри файла, я уверен, что они все равно будут существовать!
_ «Я не хочу нулевать фактическую функцию, так как я не всегда знаю, что находится внутри JS-файла». _ Что именно вы подразумеваете под этим? – Cerbrus
Как в 'example = null'; – Cameron
Почему вы хотите удалить функцию в любом случае? Каков негативный аспект его наличия? –