Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вызвать функцию с тем же параметром, с каким вызывала другая функция (https://javascript.ru/forum/misc/55061-vyzvat-funkciyu-s-tem-zhe-parametrom-s-kakim-vyzyvala-drugaya-funkciya.html)

Kenya-West 12.04.2015 17:13

Вызвать функцию с тем же параметром, с каким вызывала другая функция
 
Есть первая функция sync(link)
Вторая функция вызвала sync с параметром link="google.ru"
Третья функция должна вызвать sync(link) c тем же параметром "google.ru"

Как?

ruslan_mart 13.04.2015 07:48

var syncLink;

function sync(link) {
    alert(link);
};

function a(link) {
    syncLink = link;
    sync(link);
};

function b(link) {
    sync(syncLink);
};

a('google.ru');
b();

рони 13.04.2015 09:10

Ruslan_xDD,
зачем link в 12 строке?

theKingOfJava 13.04.2015 09:58

Kenya-West,
Если я правильно понял вопрос, вам нужны объекты или замыкания, либо какое-то другое состояние.
sync=function(){var current_link; return function(link){if(link!==undefined) current_link=link; return current_link}}()
o={
 sync: function(link){if(link!==undefined) this.current_link=link; return this.current_link}
}

console.log(
 sync(), o.sync(), sync("foo.com"), o.sync("foo.com"), sync(), o.sync()
)

ksa 13.04.2015 10:13

Цитата:

Сообщение от Kenya-West
Как?

Как вариант...

one();
two();
function one(){
	sync('google.ru');
};
function two(){
	sync();
};
function sync(Link){
	Link=Link||sync.Link;
	sync.Link=Link;
	alert(Link);
};

nerv_ 13.04.2015 11:29

alert(1);
confirm(1);
prompt(1);

caetus 13.04.2015 11:48

выбирай любую )))

function sync (x) {
var a = x;
return function(){
	console.log(a)
}


}

var f = sync(2);
f()
f()



function sync1 (x) {
	if(!sync1.arg || arguments.length > 0) sync1.arg = x;
	if(!arguments.length) console.log(sync1.arg)
	else console.log(x)
}

sync1(1);
sync1()


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