タグ

JavaScriptとthisに関するcnomiyaのブックマーク (2)

  • IT戦記 - JavaScript の this について

    WEB+DB PRESS 編集の R たんから、僕の連載記事に読者様から質問が来ていると教えていただいたので、その内容を教えていただきました。 以下、内容を転載 「JavaScriptわくわく開発道」の記事に関して質問です。 今回の内容で特に興味を持ったのはthisキーワードの振る舞いでした。 thisキーワードの説明には、オブジェクト型の変数を別の変数にコピーしてから初期化すると、コピーした変数からメソッドを実行できなくなるという例が紹介されていました。 そこには「(1)の時点でobj0には{}が入っているため、hogeは未定義となってしまう」という説明があるのですが、誌面の都合上省略があるためか、thisキーワードを用いることで問題を回避できるという理由がなかなか理解できないでいます。 自分なりに考えてみたところ、内部的には以下のようなことが起きているのではないかと思いました。 (1)

    IT戦記 - JavaScript の this について
  • fladdict.net blog: JavaScript, ActionScriptにおける .this とは何なのか?

    人様にActionScript (あるいは JavaScript)を教える時に、絶対に鬼門となるthisスコープについてのまとめメモ。 ECMAスクリプトでは関数が他の変数に代入可能な為、関数のthisが文脈によって変動します。どうも、Javaとかやってる人にはそれがスゴイ気持ち悪いらしいのです。 thisとな何なのか? 端的に言うならば、thisは「その関数を、何のプロパティと解釈して呼び出したか?」によって決定します。 関数を直接呼び出す場合と、オブジェクトのプロパティに代入してから呼び出す場合を比較してみます。 function hoge(){ alert(this); //trace(this); flashの場合はコッチ } var myObj = new Object(); myObj.hoge = hoge; hoge(); myObj.hoge(); のように書いた場合、

  • 1