2014-01-03 4 views
1

Я новичок в ООП JavaScript и просто имея игру, когда я получаю Строгое Нарушение в JSLint для следующегоJS Lint - Строгое нарушение - определение функция в объекте конструктора

function HeaderNav(){ 
    this.activateMobile = function() { 
    alert('activateMobile'); 
    } 
} 

строгого нарушение на линия

this.activateMobile = function() { 

Мне нужен способ activateMobile(), чтобы иметь это ". поэтому она работает, когда

var navigation = new HeaderNav(); 
navigation.activateMobile(); 

Спасибо

+0

Вы уверены, что это не только потому, что JSLint хочет, чтобы использовать '" использовать строгий ";' в начале каждого функционального блока? Попробуйте запустить JSLint с помощью '--sloppy'. – robertklep

+0

спасибо, robert, но не имеет значения –

ответ

2

Если вы

this.activateMobile = function() {}; 

функция не является частью прототипа, а это значит, что подкласс HeaderNav не получит эту функцию (если вы делаете явный вызов super). Установка свойства непосредственно на this только устанавливает, что свойство для этого например

Чтобы добавить функцию в качестве прототипа сделать:

function HeaderNav() {} 
HeaderNav.prototype.activateMobile = function() { 
    alert('activateMobile'); 
}; 
+0

Спасибо, Frits –

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