Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Вызов метода в методе
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 7 дней
Карма: 13




Имеется такой код(пример):
function Classes
{
this.v1 = 1;
this.v2 = 2;

this.print = function ()
{
document.write(this.getVars());
reutrn false;
}

this.getVars = function ()
{
return this.v1 + " " + this.v2;
}
}

var cl = new Classes();
cl.print();


То есть внутри метода print() я вызываю метод getVars(), но выдает вот такую вот ошибку:
Цитата
Uncaught TypeError: this.getVars is not a function

Как решить эту проблему?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3377
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 13 дней
Карма: 170




function Classes()

return false;


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 7 дней
Карма: 13




Цитата
function Classes()

Это в коде есть, это при написании примера такой косяк допустил. Недоглядел

Цитата
return false;

Это не решило проблему
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 7 дней
Карма: 13




I need your help! I need your......
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11789
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 16 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 16 дней


Цитата (N0ob @ 21.11.2015 - 12:51)
I need your help! I need your......


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 7 дней
Карма: 13




Invis1ble
Таааакс, а вот это уже интересно! Сейчас будет стыковаться
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 7 дней
Карма: 13




Выкладываю действительный код:
function History ()
{
this.Uri = window.location.href;
this.options = this.parseGetParams;
this.history = window.history;
this.modalWindow = false;

//
this.parseGetParams = function ()
{
var $_GET = {};
var __GET = window.location.search.substring(1).split("&");

for(var i=0; i<__GET.length; i++)
{
var getVar = __GET[i].split("=");
$_GET[getVar[0]] = typeof(getVar[1])=="undefined" ? "" : getVar[1];
}

return $_GET;
}


//


this.loadPage = function (pagename, options)
{
$.ajax({
url : "/engine/ajax/loadPage.php",
type : "POST",
async : true,
dataType : "json",
data: "pagename="+pagename+"&options=" + JSON.stringify(options),
success: function (data) {
if(data.success == true)
{
log("Пришел код страницы");

var page = data.page;
var window = data.window;

if(page.load)
{
$('.content').html(page.content);
$('title').html(page.title);
}else if(page.load == false)
{
alert("Невозможно загрузить страницу");
}

if(window.load)
{
$('title').html(window.title);
this.windowOpen(window.content);
this.modalWindow = true;
}


}

}
,
error: function (a, b) {
alert("При загрузке страницы произошла ошибка: " + a.responseText);
}
}
);

return false;
}


this.init = function ()
{
$('a[class=link]').on('click', function(event)
{
event.preventDefault();

var targetLink = $(this).attr('href');
var pgname = targetLink.substr(1) == "" ? "main":targetLink.substr(1);
var pgname = pgname == window.location.pathname.substr(1) ? null:pgname;

window.history.pushState({uri:pgname}, null, targetLink);

this.loadPage(pgname, this.options);

return false;
});


//
$(window).bind('popstate', function(event)
{
var uri = this.history.state.uri.substr(1);

if(this.modalWindow.length && this.modalWindow)
{
this.closewindow();
}

this.loadPage(uri);
});
}


this.closewindow = function ()
{
var bg = document.getElementById('black_bg');

bg.style.display = "none";
document.body.style.overflowY = "scroll";
document.body.style.paddingRight = "0px";


this.history.pushState({uri:targetLink}, null, targetLink);
this.modalWindow = false;

return false;
}


return false;

}


И вызов этой лабуды:
<script type="text/javascript">
var
history = new History();

history.init();
</script>
<a
class="link" href="/main">Клац</a>


И текст ошибки:
Цитата
Uncaught TypeError: this.loadPage is not a function

Где ошибка?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 7 дней
Карма: 13




Help! Help me
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25994
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 26 дней
Карма: 725

Не курю:
1 год, 2 месяца, 12 дней


у тебя изначально

loadPage прописан для объекта History
в этом случае - когда ты говоришь this.loadPage() - ты говоришь History.loadPage()



вот в этих 2х местах

this.init = function ()
{
$('a[class=link]').on('click', function(event)
{
event.preventDefault();

var targetLink = $(this).attr('href');
var pgname = targetLink.substr(1) == "" ? "main":targetLink.substr(1);
var pgname = pgname == window.location.pathname.substr(1) ? null:pgname;

window.history.pushState({uri:pgname}, null, targetLink);

this.loadPage(pgname, this.options);

return false;
});

this.loadPage =


//
$(window).bind('popstate', function(event)
{
var uri = this.history.state.uri.substr(1);

if(this.modalWindow.length && this.modalWindow)
{
this.closewindow();
}

this.loadPage(uri);
});
}


this.loadPage = History.init.loadPage

тебе нужно либо передать родительский объект аргументом, либо найти способ обратиться к нему.

ты ваще console.log не используешь?

console.log(this) перед строками с ошибкой ставь и смотри.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 22 дня
Карма: 111




скорее тут понимание области видимостей

думаю мой пример даст понятие куда копать)

var cons = $('#console');
function Hello(){
var hi = 'hello';

this.message = ' new world'

this.func = function(){
cons.append(hi);

this.second()();
}

this.second = function(){
var self = this;

(
function(){
cons.append(self.message);
})()
}

}


var test = new Hello();
test.func();


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 7 дней
Карма: 13




Игорь_Vasinsky однако смотри, код с первого поста работает, хотя алгоритм такой же wink.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25994
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 26 дней
Карма: 725

Не курю:
1 год, 2 месяца, 12 дней


итить колотить, ты вообще отладку в консоле делаешь?

this - он считает не твой объект, а ссылку саму - 2 глаза в консоль направь http://jsfiddle.net/b41tab5q/


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 7 дней
Карма: 13




Втумкал, на что вы клонили(разница во времени между ответами не играет роли, я не так долго думал laugh.gif )
Совсем забыл, что this объекта history заменяется на this объекта ссылки

Спасибо вам!!!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25994
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 26 дней
Карма: 725

Не курю:
1 год, 2 месяца, 12 дней


ну ты начни пользоваться console.log() - и не надо будет столько времени тратить


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
N0ob  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 790
Пользователь №: 37078
На форуме: 3 года, 8 месяцев, 7 дней
Карма: 13




Да, пожалуй действительно нужно. Еще раз спасибо!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса