Вызов функции, находящейся в другой функции
Добрый день!
Есть такая функция:
function func1(p1, p2) {
function func2() {alert(1);}
func2();
}
Мне нужно вызвать func2 за пределами func1 Как это можно сделать? |
Никак, очевидно.
|
Очевидно, нужно вызвать func1, потому что она ничего не делает, кроме вызова func2:D
|
function func1(par1, par2){
function func2(){alert("hi, i'm fired from func2")}
this.f2name = func2;
this.v1=par1
this.v2=par2
}
var f1 = new f1(null, null)
f1.f2name()
в javascript function - это объект. Всё, что описано в функции через ключевое слово this - доступно (аналог public) извне по имени. |
Цитата:
|
Цитата:
|
Можно использовать
arguments.callee.При этом весь scope func1 останется (см. значение переменной i)
function func1(){
var i = 3;
function func2(){alert("hi, i'm fired from func2\r\ni=" + i)}
arguments.callee.func2 = func2;
}
func1();
i = 42;
func1.func2();
|
| Часовой пояс GMT +3, время: 23:23. |