JavaScript — проблемы использования setTimeout

проблемы использования setTimeout

Не используйте строку в качестве первого аргумента вызова функции setTimeout , используйте анонимную функцию.

У вас также была дополнительная фигурная скобка:

 function setUrl() { // Get system URL details var url_path = window.location.pathname, new_url = window.location.host; setTimeout(function () { setValue('ONE_UP_URL',new_url); }, 2000); } 

Если вы используете строку, она будет оценена, и это не очень рекомендуется .

Оценка кода с использованием eval (и его родственников, Function , setTimeout и setInterval ) считается опасной, поскольку они будут выполнять код, который вы передаете, с привилегиями вызывающей стороны, и почти всегда есть обходной путь, позволяющий избежать их.

Другие мелочи:

  • Вызов конструктора String в вашем коде является избыточным, поскольку window.location.pathname уже является строкой.
  • Вы можете объявить переменные вашей функции в одном выражении var .
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector