トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     プロパティの参照がメソッドの実行方法によって出来ない理由
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
AsahiYuho
Åê¹ÆNo.25925
投稿日時: 2006-6-5 22:01
Bak@Fla名人
居住地: 心は岡山
投稿: 91
使用環境:
Re: プロパティの参照がメソッドの実行方法によって出来ない理由
さっそくのお返事、ありがとうございます

まだメソッドというものの実行について理解が曖昧な状態ですが、おぼろげながら何か見えてきました。
「getFunction()()」でメソッドを実行した場合、
そのメソッドがどこで定義されているのかが不明なため、
「this._testVarl」を参照できないと考えてよろしいでしょうか?

自分なりに考察してみまして、メソッドの他の実行方法も試してみました。
class TestClass
{
    private var _func:Function;
    private var _testVar:Number;

    private var _func2:Function;
    
    // コンストラクタ
    public function TestClass()
    {
        _func = testFunction;
        _testVar = 0;
        
        
        /*
        _func();
        getFunction()();
        getFunction().call(this);
        */
        
       _func2 = getFunction();
       _func2();

       var func:Function = getFunction();
       func();

       func.call(this);
    }
    
    // テストメソッド
    private function testFunction():Void
    {
        // trace(_testVar);
        trace([this, _testVar]);
    }
    
    // メソッドを割り当てる変数取得メソッド
    public function getFunction():Function
    {
        return _func;
    }
}

引用:
出力:
[object Object],0
undefined,undefined
[object Object],0

これらも試してみまして、仮説を立てました。

1. 「this._func()」を実行した場合、
  実行したメソッド内で「this」を参照できる。
2. ローカル変数は「this」で参照できないので、
  上記の「func()」を実行した場合、実行したメソッド内で「this」を参照できない。
3. 「call(this)」は、どこに定義されているのか分からないメソッドに
  「thisの位置ですよ」と教えてあげるために使える。

つまり「getFunction()()」の「getFunction()」はローカル変数と同じ扱いで、
仮説2から「this」を参照できないということでしょうか...?

ちょっとあたまがねじれてきました


----------------
旭日ゆうほ
swf置いてます。AM902

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   プロパティの参照がメソッドの実行方法によって出来ない理由 AsahiYuho 2006-6-5 19:48
     Re: プロパティの参照がメソッドの実行方法によって出来ない理由 Fumio 2006-6-5 20:17
     » Re: プロパティの参照がメソッドの実行方法によって出来ない理由 AsahiYuho 2006-6-5 22:01
         Re: プロパティの参照がメソッドの実行方法によって出来ない理由 Fumio 2006-6-6 5:09
           Re: プロパティの参照がメソッドの実行方法によって出来ない理由 AsahiYuho 2006-6-6 21:37
     Re: プロパティの参照がメソッドの実行方法によって出来ない理由 gonzaemon0 2006-6-7 10:25
       Re: プロパティの参照がメソッドの実行方法によって出来ない理由 AsahiYuho 2006-6-7 16:41

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops