Как вызвать функцию javaScript - PullRequest
       7

Как вызвать функцию javaScript

3 голосов
/ 10 февраля 2012

У меня есть функция onChangeBrand() в A.js и такое же имя в B.js .

Так как избежать этой ситуации? Есть ограничение - я не могу изменить имена функций. и мне не разрешено редактировать оба файла Js, поэтому пространство имен мне не подходит.

Можем ли мы назвать что-то вроде A.onChangeBrand() или B.onChangeBrand()?

Ответы [ 4 ]

1 голос
/ 10 февраля 2012

Если у вас нет доступа к источнику, то решение является следующим (не самое красивое, заметьте):

<script src="http://exmpale.com/a.js"></script>
<script>
 A = { onChangeBrand:onChangeBrand };
</script>

<script src="http://exmpale.com/b.js"></script>
<script>
 B = { onChangeBrand:onChangeBrand };
</script>

Эти две функции теперь имеют пространство имен и могут вызываться следующим образом:

A.onChangeBrand();     
B.onChangeBrand();
1 голос
/ 10 февраля 2012

Хорошо, если пространства имен не для вас, и вы можете поместить свой код между тегами script, загружающими эти файлы

<script src='a.js'></script>
<script>
var a_onChangeBrand = onChangeBrand; // copy the function
</script>
<script src='b.js'></script>

после этого a_onChangeBrand() вызовет функцию из a.js и onChangeBrand () из b.js

Но ничто не поможет вам, если некоторые функции в этих a.js и b.js также используют эти функции - они могут вызывать функцию из последнего загруженного файла.

1 голос
/ 10 февраля 2012

Проверьте, как использовать пространства имен в JavaScript, если вы можете редактировать эти два файла a.js и b.js, тогда вы можете объявить пространства имен. Лучший ответ здесь: Как мне объявить пространство имен в JavaScript?

0 голосов
/ 10 февраля 2012

Вы можете сделать это с одной из ваших функций ..

var myNS = new (function() {

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

})();

, а затем позвоните myNS.onChangeBrand();

Аналогичным образом используйте myNS2 для других функций. Они называются пространствами имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...