Добавить метод у функцию
Здравствуйте.
Для примера есть такой код: <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 это объекты, и им можно добавлять методы, но так и не понял, как мне получить желаемое. |
нужно чтобы обе функции обращались к одному окружению.
<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>
|
возможен также вариант с сокрытием
<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>
Это все суть одно и то же. |
| Часовой пояс GMT +3, время: 01:30. |