Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   метод call() - ошибка ( (https://javascript.ru/forum/events/4535-metod-call-oshibka.html)

mrValter 31.07.2009 11:08

метод call() - ошибка (
 
Здравствуйте, не могу понять где возникает ошибка.
есть класс. в нем имется переменная onload
хочу запустить метод, название которого содержится в onload. FF Выдает ошибку this.onload.call() is not a function.
код примерно такой:
var net=new Object();
net.ContentLoader=function(onload)
{
this.onload=onload;
this.content();
}
net.ContentLoader.prototype.content=function()
{
this.onload.call(this);
}
function pool()
{
alert("запустилась");
}

и запускаю класс :
var one = new net.ContentLoader('pool');

Kolyaj 31.07.2009 11:23

Цитата:

Сообщение от mrValter
var one = new net.ContentLoader('pool');

pool без кавычек.

mrValter 31.07.2009 11:28

Нет, кавычки нужны, так как я передаю строку, а именно название метода.

Kolyaj 31.07.2009 11:32

У строки нет метода call. На php пытаетесь писать.

mrValter 31.07.2009 11:35

то есть, никак нельзя запустить функцию, имя которой содержится в переменной?

B~Vladi 31.07.2009 11:36

Имя функции это и есть переменная, вот её и передавайте как переменную.

Kolyaj 31.07.2009 11:39

Цитата:

Сообщение от mrValter
то есть, никак нельзя запустить функцию, имя которой содержится в переменной?

Если функция лежит в глобальном скопе, то window[name]()

mrValter 31.07.2009 11:40

Цитата:

Сообщение от B~Vladi (Сообщение 25731)
Имя функции это и есть переменная, вот её и передавайте как переменную.

Немножко не понял, это как сделать? не могли бы вы показать на примере?

mrValter 31.07.2009 11:47

Цитата:

Сообщение от Kolyaj (Сообщение 25732)
Если функция лежит в глобальном скопе, то window[name]()

попробовал так, пишет тоже самое функция window.this.onload() не существует...

Kolyaj 31.07.2009 11:50

Цитата:

Сообщение от mrValter
не могли бы вы показать на примере?

Сказал же, кавычки уберите.


Часовой пояс GMT +3, время: 16:14.