2015-04-29 5 views
0

Я следую за этим blog и играя с кодом.Вызов частных методов

function MyClass() { 
    var self = this; 
    var privateVar = 'My Private Variable'; 
    this.publicVar = 'My Public Variable'; 
    var privateFunction = function() { 
    self.publicVar += ' Modified By A Private Fucntion'; 
    alert(self.publicVar); 
    }; 
    privateFunction(); //1: why this code not working. kindly give the reason for this. 
} 

Как я могу позвонить privateFunction ?? Результат, который я ищу // «Моя приватная переменная, измененная по частному объекту»

+0

В каком качестве это не работает? Не вызвано ли предупреждение, или это предупреждение показывает другое значение, чем вы ожидаете? Также как вы используете MyClass? –

+3

Хорошо работает, вы на самом деле инициировали «MyClass» где-то? – axelduch

ответ

0

Этот код должен работать. Скорее всего, вы не создаете MyClass нигде.

function MyClass() { 
var self = this; 
var privateVar = 'My Private Variable'; 
this.publicVar = 'My Public Variable'; 
var privateFunction = function() { 
    self.publicVar += ' Modified By A Private Fucntion'; 
    alert(self.publicVar); 
}; 
privateFunction(); // why this code not working.. 
}; 
new MyClass(); //Run MyClass, triggering all code. 
+0

Должен быть 'new MyClass', так как иначе' this' будет ссылаться на 'window' или какой-либо глобальный объект (в случае nodejs и аналогичный) –

+0

спасибо dude..Вы можете предложить любую книгу для реализации концепции oops в java-скрипте. Откуда я изучаю прототип, класс и все, что – Brijesh

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