[過去ログ]
■吉里吉里/KAG/TJS雑談質問スレ■その29 (1002レス)
■吉里吉里/KAG/TJS雑談質問スレ■その29 http://echo.5ch.net/test/read.cgi/gamedev/1433436610/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
886: 名前は開発中のものです。 [sage] 2016/03/31(木) 16:34:13.25 ID:1iv6e1ot >>883 まずはtjsにおけるコンテキストとはなんぞやを理解しましょう tjsでのコンテキストは、実行するときに変数を参照する先のこと。今使ってる実行コンテキスト(this)に目的の変数がなければglobalを参照してそこにもなければエラーになる仕組みです tjsの関数はよばれた時につかうコンテキストを持てます。コンテキストを持ってればそのコンテキストをthisとして動作して、関数から戻る時に前のコンテキストに戻します。なければ現在のままで動きます globalに名前つきで作られた関数はglobalコンテキストを持ってます。インスタンスのメンバ関数はそのインスタンス自身をコンテキストとして持ってつくられます obj.func() で呼び出される関数は、何もいじってなければobjをコンテキストとして持ってるので、objのメンバを参照して動作できるわけです 「いじってなければ」がポイントで、incontextof はそのコンテキストを入れ替えた関数を作る演算子です function() と無名で作られた関数はコンテキストを持たないので、オブジェクトにあとから関数を足す場合などでは明示的にそのオブジェクトをコンテキストとして足す必要があり、そのためにKagのMainwindowで多用されてます 任意の関数のコンテキストを変えて使うことはできますが、関係ないものを使っても混乱するだけなので濫用はつつしむべき機能ではあります 辞書でincontextを使う理由は、辞書は入れる値と名前が重なると困るので、tjsでは辞書のインスタンスにはメンバ関数が作られてません。関数自体はDictionaryクラスにあるのでそれにincontextof でインスタンスをくっつけて使うわけです http://echo.5ch.net/test/read.cgi/gamedev/1433436610/886
890: 名前は開発中のものです。 [sage] 2016/04/01(金) 21:14:46.28 ID:ZjWyVE8X >>886 丁寧な説明ありがとうございます mainwindowを読めなくて勉強始めたのですが、なんとか読めそうです http://echo.5ch.net/test/read.cgi/gamedev/1433436610/890
904: 名前は開発中のものです。 [sage] 2016/04/04(月) 03:25:42.41 ID:STv4J797 >>886 >>887 いやていねいで分かりやすい説明だと思う ただそれとは別に吉里吉里だけやってて とつぜん出てきても正直分かんないよね 吉里吉里の解説サイトは オブジェクト指向自体には触れてないから 普通のプログラミング言語…… とくにJavaScriptで コンテクストとかthisとかそこら辺 説明してるサイトも多いから JSを知ってると急がば回れで 確実に理解できるかも http://echo.5ch.net/test/read.cgi/gamedev/1433436610/904
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.032s