Добавить метод у функцию
Здравствуйте.
Для примера есть такой код: <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:50. |