Как браузеры обрабатывают несколько функций объявлений с тем же именем?

StackOverflow https://stackoverflow.com//questions/9708598

Вопрос

Как браузеры обрабатывают несколько деклараций функций с тем же именем?

Тестовый тест ниже - Примечание. Я знаю, что это не имеет смысла позволять скрипту сервера создавать более одного объявления функции с тем же именем, но мне интересно, поэтому, пожалуйста, осознайте это, прежде чем ответить.Это чисто для поведенческих исследований.

Наши CMS создает несколько экземпляров одного «виджета», который состоит из A

<div class="targetMeWithThis"></div>
.

и A

function startWidgetFunction() {
var param1 = $server.Variable1
var param2 = $server.Variable2
var param3 = $server.Variable3
}
.

Когда сервер отображает страницу, которая имеет множество экземпляров этого виджета на нем, как браузер определяет, какая функция JavaScript используется?Есть ли какие-либо браузеры, которые фактически создают отдельные объекты (функции) для каждого?

Спасибо, J

Это было полезно?

Решение

в JavaScript, (почти) Все является объектом, включая функции.Такое заявление, перезаписи определение функции работает точно так же, как перезаписывать переменную.

var myFunc = function () {
    alert('1');   
};

myFunc(); // alerts '1'

var myFunc = function () {
    alert('2');  
};

myFunc(); // alerts '2'
.

http://jsfiddle.net/kgkgf/3/

Обратите внимание, что объявление переменной, которая уже объявлена, не является хорошей практикой, а многие инструменты качества кода (Jslint, jshint и т. Д.) предупреждают вас об этом.

Другие советы

В этом конкретном случае:

function = startWidgetFunction() {
var param1 = $server.Variable1
var param2 = $server.Variable2
var param3 = $server.Variable3
}
.

Браузер бросит ошибку, потому что function является зарезервированным ключевым словом.

Учитывая другое имя переменной, то вы просто назначаете значение (Global) переменной.Переменная будет перезаписана новой (идентичной) функцией с каждым последовательным выполнением скрипта виджета.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top