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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     thisの意味が分からない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
inu_kt
Åê¹ÆNo.24622
投稿日時: 2006-3-31 2:25
半人前
居住地:
投稿: 33
使用環境:
Flash 8 Pro
Windows XP
thisの意味が分からない
お世話になっております。

_rootで、
------------------------
function func1(){
trace(this);
}
func1();
------------------------
とすると、_lebel0が返るのは分かるのですが、

_rootで、
-------------------------
function func1(){
trace(this);
}
sID = setInterval(func1, 100);
-------------------------

とすると、thisの中身がundefinedになるのは
なぜなのでしょうか?

凄く混乱しています。

どうかアドバイスのほどよろしくお願い申し上げます。
taikiken
Åê¹ÆNo.24626
投稿日時: 2006-3-31 5:35
新米
居住地: 福岡
投稿: 11
使用環境:
OSX 10.3,10.4,10.5:MX2004,8,CS3
WinXP:MX2004,8,CS3
Re: thisの意味が分からない
こんにちは、

引用:
thisの中身がundefinedになるのはなぜなのでしょうか?

thisの参照が違っているからだと思います。

sID = setInterval(func1, 100);


sID = setInterval(this,"func1", 100);

としてみると、どうでしょう。

正しい説明かどうかはわかりませんが、私は

func1();
は、_rootが関数func1を実行している。

sID = setInterval(func1, 100);
は、setIntervalが関数func1を実行しているのでthisがundefinedになっちゃう。

sID = setInterval(this,"func1", 100);
は、setIntervalへthis(_root)を派遣してthisが関数func1を実行している。

と思っています。


----------------
***********************************
taikiken

inu_kt
Åê¹ÆNo.25059
投稿日時: 2006-4-22 13:26
半人前
居住地:
投稿: 33
使用環境:
Flash 8 Pro
Windows XP
Re: thisの意味が分からない
お返事が遅くなってしまい、申し訳ございません。

なるほど、「何が関数を呼び出しているか」で、thisの
内容を判断すればいいのですね。

頭の中の混乱がすっきりしたような気がします。

どうもありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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