![]() ![]() | |
You can initialize properties inlinethat is, when you declare themwith default values, as shown here:
class Person {
var age:Number = 50;
var name:String = "John Doe";
}
When you initialize properties inline the expression on the right side of an assignment must be a compile-time constant. That is, the expression cannot refer to anything that is set or defined at runtime. Compile-time constants include string literals, numbers, Boolean values, null, and undefined, as well as constructor functions for the following built-in classes: Array, Boolean, Number, Object, and String.
For example, the following class definition initializes several properties inline:
class CompileTimeTest {
var foo:String = "my foo"; // OK
var bar:Number = 5; // OK
var bool:Boolean = true; // OK
var name:String = new String("Jane"); // OK
var who:String = foo; // OK, because 'foo' is a constant
var whee:String = myFunc(); // error! not compile-time constant expression
var lala:Number = whee; // error! not compile-time constant expression
var star:Number = bar + 25; // OK, both 'bar' and '25' are constants
function myFunc() {
return "Hello world";
}
}
This rule only applies to instance variables (variables that are copied into each instance of a class), not class variables (variables that belong to the class itself). For more information about these kinds of variables, see Instance and class members.
![]() ![]() | |