Jump to content
  • 0

Запуск функции метода объекта


Razor
 Share

Question

Есть что-то примерно такой конструкции:

obj = function(){
this.func = function(){
function alo(){ alert("Ало"); }
}}
var o = new obj();

как запустить функцию alo() самую внутреннюю? именно идя от window. , поскольку там нужно использовать именно на эту функцию setTimeout();

Или такое вообще не возможно? Спасибо.

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0
Ну просто эту внутреннюю функцию метода вызывать с небольшой задержкой времени. Придется переписывать как-то чтоб эта функция методом была чтоли...

Есть вариант использовать синглтон.

var func = funtion () {

var x = 1;

var foo = function () { alert("opa") }

var foo2 = function () { alert("opa2") }

return { foo: foo }

}()

func.foo()

alert( func.foo2 )

Link to comment
Share on other sites

  • 0

Мне при помощи этого примера не удалось запустить функцию метода, поэтому переписал чтобы та функция была методом.

var func = function () {
var x = 1;
var foo = function () {
function f1() {alert ("opa1"); }
}
return { foo: foo }
}();

func.foo()

вот к f1 ведь никак не подступиться верно?

Link to comment
Share on other sites

  • 0
Мне при помощи этого примера не удалось запустить функцию метода, поэтому переписал чтобы та функция была методом.

var func = function () {
var x = 1;
var foo = function () {
function f1() {alert ("opa1"); }
}
return { foo: foo }
}();

func.foo()

вот к f1 ведь никак не подступиться верно?

Нужно не так делать

var func = function () {
var x = 1;
var foo = function () {
var f1 = function() {alert ("opa1"); }
return { f1: f1 }
}()

};

func.foo.f1()

Link to comment
Share on other sites

  • 0

Да) вот так получилось

var func = function () {
var x = 1;
var i = 0;
var foo = function () {
i++;
var f1 = function() {alert (i); }
return { f1: f1 }
}()
return { foo: foo }
}();

func.foo.f1();

А можно ли каким-нибудь образом создать замыкание i ? чтобы оно увеличивалось каждый раз... Но тогда, я так понимаю, невозможен будет объект foo

Link to comment
Share on other sites

  • 0
Да) вот так получилось

А можно ли каким-нибудь образом создать замыкание i ? чтобы оно увеличивалось каждый раз... Но тогда, я так понимаю, невозможен будет объект foo

Функция foo вызывается всего один раз. И все. Чтобы работал счетчик вызовов, перенесите его инкремент в f1

Edited by s0rr0w
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy