Пытаясь научиться создавать объекты в ActionScript, я не добился успеха.
Одна вещь, которую я заметил, это то, что, кажется, существует миллиард различных способов сделать это. Даже если ни один из них не работал на меня. Это действительно смущает меня, и я не знаю, какой подход попытаться отладить.
Наиболее часто встречающийся подход:
function myClass() {
this.val = 1;
}
var test = new myClass();
trace(test.val);
Но это просто дает мне ошибки компилятора, независимо от того, насколько просто я это делаю, и для меня нет смысла, что функция может быть объектом. Если функция является объектом, то где «это» указывает, когда она находится в функции в функции (которая интерпретируется как объект).
Другой способ, который, кажется, встречается несколько реже:
class myClass {
function myClass() {
this.val = 1;
}
}
var test = ....
Это также дает мне ошибки компилятора и кажется более формальным. Но я могу найти очень мало документации для сравнения. Большинство руководств либо очень просты, либо предполагают, что вы говорите о встроенных объектах.
Третий способ - создать
new Object();
в функции, добавить все, что вы хотели, и вернуть его. Кажется логичным Но я читал всевозможные вещи, в которых упоминаются прототипы, и кажется, что созданный таким образом объект плохо подходит для создания прототипа. Но на самом деле я просто очень смущен.
Я также сталкивался с тем, что синтаксис объектов в AS2 и AS3 отличается, но не более того.
Как я должен создавать объекты? Каковы лучшие практики, и ради любви к Богу кто-нибудь знает, где я могу найти углубленное руководство? (мой гугл-фу явно слаб)