Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   достучаться до объекта другой функции (https://javascript.ru/forum/misc/49467-dostuchatsya-do-obekta-drugojj-funkcii.html)

SunYang 14.08.2014 15:05

достучаться до объекта другой функции
 
Есть в одном файле два блока:

1.
$(document).ready(function(){

    var obj1 = {
        func1 : function(){
            alert(1);
        }

});


и второй:

$(document).ready(function(){

    var obj2 = {
        func2 : function(){
            КАК здесь вызвать функцию obj1.func1() ?
        }

});


Вопрос собственно вот в чем:

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

ksa 14.08.2014 15:15

Цитата:

Сообщение от SunYang
как из второго блока вызвать функцию, которая находится в первом блоке.
По сути это две разных анонимных функции

Именно поэтому - никак.

skrudjmakdak 14.08.2014 15:18

написать вместо
... var obj2 = { ...
это:
... window.obj2 = { ...

ну и с первым также

ksa 14.08.2014 15:23

Цитата:

Сообщение от skrudjmakdak
написать вместо

Или так... :)

$(document).ready(function(){

    var obj1 = myObj();

});
//
$(document).ready(function(){

    var obj2 = {
        func2 : function(){
			var obj1 = myObj();
            obj1.func1();
        }

});
//
function myObj() {
    return {
        func1 : function(){
            alert(1);
		};
	};
};

skrudjmakdak 14.08.2014 15:27

угу, или под один ready занести ;)
у кого еще какие варианты))

Arramis 14.08.2014 17:01

предложу свой чтоли, хотя принципиально мало чем отличается от предыдущих вариантов ...

var funcsStorage = {};

$(document).ready(function() {

    var obj1 = {
        func1: function() {
            alert(1);
		}
	}
		
		funcsStorage.func1 = obj1.func1;		
});

$(document).ready(function() {

    var obj2 = {
        func2: function() {
            funcsStorage.func1();
        }
	}
		
	//obj2.func2(); // 1
});


Часовой пояс GMT +3, время: 04:34.