2013-05-04 2 views
1

Учитывая следующий код:Не ошибка конструктора в jQuery.on

var test; 
this.test = function() { 
//... 
}; 

$(document).ready(function() { 
$(this).on('click', function(e) { 
test = new test(); 
//... 

Я всегда получаю тест не является конструктором. Зачем?

+1

Причина его не ... –

+0

должен быть 'var test = function() {}' Это позволит вам начать с основ OOPS в JS .. http://www.slideshare.net/After2050/oops-in- javascript-4877770 – Amitd

ответ

1

@EDIT: Конструктор, а также добавление переменной к типу теста:

function Test(){ 
    this.something = 'hello'; 
} 

$(document).ready(function() { 
    $(this).on('click', function(e) { 
    var test = new Test(); 
    alert(test.something); 
    }); 

});

Это приведет к предупреждению с текстом «привет». Адаптация кода, вы также можете сделать: тест

var test = { 
    something: "hello" 
}; 

$(document).ready(function() { 
    $(this).on('click', function(e) { 
    var test = new Object(); 
    alert(test.something); 
    }); 
}); 
+0

Мой Javascript ... отсутствует. Не могли бы вы объяснить, почему ваш код работает, а другой нет? –

+0

"test" - это var, а не конструктор –

0

вар = this.test;

новый тест() указывает на переменный тест, который не является тем, который вы объявляете как функция.

Смежные вопросы