Я знаю, что я делаю что-то несправедливое в использовании пространств имен. Я отправляю этот вопрос после исследования тонны в поиске/google. Все еще не могу найти то, что я делаю неправильно. Не могли бы вы помочь мне? Это то, что у меня естьПространство имен Javascript - обмен переменной между функциями
Javascript
Javascript file1
(function (js_namspace1, $, undefined) {
js_namespace1.n1function1 = function(){
var return_obj = {
return_function_to_call: “n1function_name2”
return_function_to_call_namespace: “js_namespace1”
}
js_namespace2.n2function1(return_obj)
}
Js_namespace1.n1function_name2 =function(list_of_names){
Js_namespace1.list_of_names = list_of_names
// do some processing to js_namespace1. list_of_names
}
}
(window. js_namspace1 = window. js_namspace1|| {}, jQuery));
Javascript file2
(function (js_namspace2, $, undefined) {
js_namespace2.n2function1(return_obj) = function(return_obj){
js_namespace2.return_function_to_call = return_obj.return_function_to_call
js_namespace2.return_function_to_call_namespace = return_obj. .return_function_to_call_namespace
// do some processing
Js_namespace2.list_of_names = []
Js_namespace2. list_of_names.push(value_name)
window[js_namespace2.return_function_to_call_namespace][js_namespace2.return_function_to_call](Js_namespace2.list_of_names);
}
}
(window. js_namspace2 = window. js_namspace2|| {}, jQuery));
Html
От HTML file1 вызова js_namespace1.n1function1 на основе конечного пользователя, нажав поле,
// js_namespace1.n1function1
вызовы js_namespace2.n2function1
и отображает другой HTML file2
// В HTML file2 процесс данные (собирать значения имен), а затем вызвать функция возврата Js_namespace1.n1function_name2
в Js_namespace1.n1function_name2
, процесс Js_namespace1.list_of_names(array)
, но когда я делаю это, и изменения в Js_namespace2.list_of_names
Например, когда я Js_namespace1.n1function_name2.push(add_another_name)
, а затем позвоните js_namespace1.n1function1
(который, в свою очередь, вызывает js_namespace2.n2function1
). Js_namespace2.list_of_names
содержит значение add_another_name
.
Обратите внимание: когда js_namespace2.n2function1
вызывается из js_namespace1.n1function1
, массив не передается как параметр.
Мои ожидания был когда js_namespace1.n1function1
звонки js_namespace2.n2function1
это бы не обновитьJs_namespace2.list_of_names
с add_another_name
.
Не могли бы вы объяснить, что происходит? самое главное указать на любые ошибки, которых я должен избегать в этом проекте (пространство имен, обмен параметрами между вызовами функций). Я правильно использую пространство имен в javascript - рекомендую ли какие-либо рекомендации?
Вы можете предоставить jsfiddle? – Grundy
Первое, что нужно сделать, это проверить консоль разработчика. У вас много опечаток в вашем коде ('Var' вместо' var' и т. Д.). – Pointy
Пожалуйста, напишите свой код в редакторе, а не в текстовом редакторе. Вопросы правописания и обсадной колонны в программировании. Используйте '' ... "' not '" ... "', используйте 'js_namespace ...' not 'Js_namespace ...'. Кроме того, некоторые отступы могли бы облегчить читаемость. – Bergi