Цитата:
|
Сообщение от wvxvw
Чтобы эта функция была методом она должна соответствовать следующим условиям:
- она должна быть доступна любому другому методу объекта, чьим методом она является. (Ваша функция этому требованию не соответствует, т.как методы объявленные на прототипе класса не смогут к ней обратиться).
- она должна быть в состоянии обратиться к любому другому методу класса, чьим методом она является. (Ваша функция не соответствует этому требованию, т.как любой метод / свойство объявленное после ее оъявления будут ей недоступны).
|

Код:
function Class1(){
var pat;
this.at=34;
pat = this.at;
//приватный метод
function pMetA(){
trace(pat); // использует паблик свойство по ссылке
}
//приватный метод
function pMetB(){
pmet2; //использует паблик метод объявленный "после", требование 2 исчерпано
}
//паблик методы
function pmet1(){
pMetA();
}
function pmet2(){
trace("do pmet2");
}
this.met1=pmet1;//паблик метод, свойство по значению
this.met2=pmet2; //паблик метод объявленный после
Class1.prototype.met3 = pmet1; // требование 1 исчерпано
}
////////////////////////////////////////
var obj = new Class1();
obj.met2(); //do pmet2
obj.met3(); //34
Добавлено в 18:59
2 __etc:
Цитата:
|
Ага, как мне изменить значение публичной переменной «a» в приватном методе pMet? Мне же не просто надо смотреть на переменную, а ещё и изменять её.
|
Используй prototype. Вы не программировали на AS1?