Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.06.2015, 17:46
Новичок на форуме
Отправить личное сообщение для rgba Посмотреть профиль Найти все сообщения от rgba
 
Регистрация: 19.04.2015
Сообщений: 7

Добавить метод у функцию
Здравствуйте.
Для примера есть такой код:
<a href="#">Text 1</a>
<a href="#">Text 2</a>


$('a').on('click',myFunc);

function myFunc(){
	alert($(this).text());
	return;
};

function anotherFunc(){
	var a = // результат alert'а функции myFunc
}


Возможно ли каким-то образом получить значение alert'a функции myFunc из функции anotherFunc при условии, что нельзя рекдактировать код функции myFunc напрямую.
Я читал про прототипирование, про то, что функции в js это объекты, и им можно добавлять методы, но так и не понял, как мне получить желаемое.

Последний раз редактировалось rgba, 09.06.2015 в 17:56.
Ответить с цитированием
  #2 (permalink)  
Старый 09.06.2015, 18:13
Интересующийся
Посмотреть профиль Найти все сообщения от sogoodweather
 
Регистрация: 09.06.2015
Сообщений: 26

нужно чтобы обе функции обращались к одному окружению.
<html>
<head>
</head>
<body>

<input id="i">
<button id="change" onclick="o.f1()">change</button>
<button id="show" onclick="o.f2()">show</button>

<script>

o={
 f1: function(){alert(this.state=i.value)},
 f2: function(){alert(this.state)}
}

</script>

</body>
</html>

Последний раз редактировалось sogoodweather, 09.06.2015 в 18:24.
Ответить с цитированием
  #3 (permalink)  
Старый 09.06.2015, 18:23
Интересующийся
Посмотреть профиль Найти все сообщения от sogoodweather
 
Регистрация: 09.06.2015
Сообщений: 26

возможен также вариант с сокрытием
<html>
<head>
</head>
<body>

<input id="i">
<button id="change" onclick="f1()">change</button>
<button id="show" onclick="f2()">show</button>

<script>

;(function(){
 var state
 f1=function(){alert(state=i.value)}
 f2=function(){alert(state)}
})()

</script>

</body>
</html>

В этом случае, посторонние программные объекты не смогут модифицировать переменную state.
А в простейшем случае, можно просто использовать window(global). Тогда Вы можете написать просто
<html>
<head>
</head>
<body>

<input id="i">
<button id="change" onclick="f1()">change</button>
<button id="show" onclick="f2()">show</button>

<script>


 f1=function(){alert(state=i.value)}
 f2=function(){alert(state)}

</script>

</body>
</html>

Это все суть одно и то же.

Последний раз редактировалось sogoodweather, 09.06.2015 в 18:31.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как добавить функцию в значение var? zaza41rus Events/DOM/Window 1 10.11.2014 02:00
Добавить функцию, не знаю как сделать maxim96 Элементы интерфейса 0 23.07.2011 21:16
Как добавить метод ко всем элементам? zubr80 Events/DOM/Window 3 06.04.2009 05:46
Добавить свой метод к элементу alekciy Events/DOM/Window 6 16.02.2009 19:29