Вызывать определенную функцию javascript, когда в памяти используется одна и та же функция имени

Мне нужно вызвать определенную функцию js. Проблема заключается в том, что во время выполнения может возникнуть ситуация, когда другой файл js может содержать одну и ту же функцию имени. Но я должен быть конкретным, какую функцию я должен назвать.  Перегрузка функции не является моим решением.

Спасибо и приветствую, Tanmay

Ответ 1

вам придется выполнить некоторую реорганизацию ваших ресурсов и использовать пространство имен, где вы можете.

если у вас есть метод с именем saySomething, определенный дважды, вы должны перенести один из них на объект (в зависимости от ваших потребностей).

var myNS = new (function() {

    this.saySomething = function() {
        alert('hello!');
    };

})();

а другая ошибка может быть перенесена в другой объект или даже оставлена ​​одна.

function saySomething() {
    alert('derp!');
}

теперь вы можете вызвать метод saySomething, например

saySomething();      // derp!
myNS.saySomething(); // hello!

edit: поскольку он был взят в комментариях, этот

var myNS = {
    saySomething: function() {
        alert('hello!');
    }
};

эквивалентен первому блоку кода в более простой форме (если я правильно помню).

Ответ 2

По крайней мере, в firefox, когда у вас есть две функции с тем же именем, вторая перезапишет первый.

Итак, вы не можете вызвать первый.

Попробуйте:

function a() {alert(1);}
function a() {alert(2);}
a(); // alerts '2'

Смотрите jsfiddle.

Ответ 3

В javascript аналогично названные функции автоматически переопределяют предыдущую функцию, определенную с тем же именем.

Скажем, ваша страница включает в себя 1.js и 2.js, и обе они определяют одну и ту же функцию, например say, display(). В этом случае, в зависимости от того, какой js файл включен последним, определение "display()" в этом файле переопределит все другие предыдущие определения.

Ответ 4

Я использую область функций для ограничения объема переменных и функций

Вот пример:

// existing function in JavaScript
function one() {

 console.log('one');   
}

one(); // outputs one

// inserting new JavaScript
(function() { // anonymous function wrapper
'use strict'; // ECMAScript-5

   function one() {

     console.log('two');   
   } 


   one(); // outputs two

})(); // end of anonymous function

one(); // outputs one

Я надеюсь, что это поможет :)