メイン ActionScript 3.0 特設会議室 withステートメントのスコープチェーン | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
chillout | Åê¹ÆNo.38439 投稿日時: 2008-4-14 20:37 |
新米 居住地: 投稿: 8
使用環境:
MacOSX10.4, Flash CS3 |
withステートメントのスコープチェーン withステートメントについて質問です。
以下のスクリプトは、 Objectインスタンスのプロパティ'a'の値である2が 出力されることを期待していますが、 実際には1が出力されます。 package { import flash.display.Sprite; public class Main extends Sprite { public function Main () { var a : int = 1; var obj : Object = {a:2}; with(obj) { trace(a); } } } } // output // 1 リファレンスによると、 引用: 識別子を解決するために with ステートメントで使用されるスコープチェーンは、次のリストの最初の項目から始まり、最後の項目まで続きます。 となっていて、 アクティベーションオブジェクトより先に、 withステートメントに渡したobjのスコープで aが解決されるはずですが、 実際は、アクティベーションオブジェクトのスコープで 解決されているように見えます。 これは、リファレンスの誤りでしょうか? それとも、何か勘違いをしているのでしょうか? |
野中文雄 | Åê¹ÆNo.38440 投稿日時: 2008-4-14 22:15 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: withステートメントのスコープチェーン バグだと判断します。かねてより、withステートメントの使用は、お勧めしてはいませんでした。しかし、現行Flash Player 9/ActionScript 3.0については、使用禁止とするよう警告します。
|
chillout | Åê¹ÆNo.38443 投稿日時: 2008-4-14 22:40 |
新米 居住地: 投稿: 8
使用環境:
MacOSX10.4, Flash CS3 |
Re: withステートメントのスコープチェーン バグですか。
普段はwithステートメントを使用することはないのですが、 スコープチェーンやファンクションクロージャの理解を深めるために いろいろ試してみたところ、上記の問題ではまっていました。 これですっきりしました。 ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |