Все текущие ответы используют литеральную строку, которую я предпочитаю не иметь в своем коде, если возможный - это не делает (и обеспечивает ценное семантическое значение, для начальной загрузки):
function isFunction(possibleFunction) {
return typeof(possibleFunction) === typeof(Function);
}
Лично, я пытаюсь сократить количество строк, бродящих вокруг в моем коде...
<час> кроме того, в то время как я знаю, что typeof
оператор и не функция, существует мало вреда в использовании синтаксиса, который заставляет его появиться как последний.
Это будет варьироваться от браузера к браузеру, однако ключевое слово javascript delete
не имеет ничего общего с методом DOM createElement
. Нет необходимости использовать delete
.
Что произойдет, так это то, что ссылка на элемент, который в настоящее время содержится в createdElement
, будет удалена сборщиком мусора. Теперь в случае IE это будет означать, что счетчик ссылок элемента будет сброшен до 0, поэтому он уничтожит себя и освободит свою память. Другие браузеры делают что-то по-другому, обычно элементы в DOM сами являются объектами, собирающими мусор, и будут удалены во время того же (или, возможно, специфичного для DOM) цикла GC.
После завершения функции больше нет ссылки на объект, т.е. если сборщик мусора работает правильно, его следует собрать (есть ошибка IE, которая не позволяет собирать объекты с циклическими ссылками если задействованы узлы DOM).
Кроме того, ваш код не работает, поскольку локальные переменные не могут быть удалены: попытка сделать это даже приведет к синтаксической ошибке в строгом режиме ES5.