OK、これら2つのクラス(foo
とbar
)をそれぞれ独自の.ASファイルに作成しました。これらのクラスは両方とも、というパッケージに保存されましたcustom
。
「Sandbox」と呼ばれる.FLAファイルで、次のコードをタイムラインに配置しました。
import custom.foo;
import custom.bar;
var f:foo = new foo("FOO");
var b:bar = new bar("BAR");
trace(f.valueOf());
trace(b.valueOf());
f.statement();
b.statement();
次の出力が得られました。
FOO
バー
ステートメント:値はFOOです
ステートメント:値はBARです
さて、通常、私はこれについてあまり考えませんが、クラスのコードを見てください...これがfoo.as
ファイルです(私のコメントを除いて):
package custom {
public class foo {
public var property:String;
public var value:String;
public function foo (par:String = "?") {
this.property = par;
this.value = this.valueOf();
return;
}
prototype.expression = function () {
trace ("Expression: the value is", this.property);
}
public function statement () {
trace ("Statement: the value is", this.property);
}
public function valueOf() {
return(this.property);
}
}
}
...そしてここにbar.as
ファイルがあります(私のコメントを除いて):
package custom {
public class bar {
public var property:String;
public var value:String;
public function bar (par:String = "?") {
prototype.property = par;
prototype.value = prototype.valueOf();
return;
}
prototype.expression = function () {
trace ("Expression: the value is", prototype.property);
}
public function statement () {
trace ("Statement: the value is", prototype.property);
}
public function valueOf() {
return(prototype.property);
}
}
}
prototype
代わりに使用したときに同じ結果が得られたのはなぜthis
ですか?prototype
これは厄介な質問ですが、誰かが実際の意味を教えてくれない限り、答えることはできません。
this
大まかに「このクラスのこのインスタンス」に変換されることは知っていますが...どういうprototype
意味ですか?