タグ

thisとprogrammingに関するfjwr38のブックマーク (4)

  • JavaScriptのthisの覚え方 - Qiita

    JavaScriptのthisは同じソースコードでも呼び出し元次第で意味が違ったりして複雑だと思われがちだけど、一回覚えてしまえば簡単だ。 JavaScriptにはthisが4種類ある これだけをしっかり覚えておけば、後は必要な時に 4種類って何があるんだっけ? と考えれば容易に思い出せる。 ちなみに、下記のコードはブラウザ上で実行することを想定している。(なのでwindowを使う) トップレベルのthis グローバルオブジェクトを指す。 var hoge = "fuga"; window.foo = "bar"; // fuga+bar と表示される console.log(this.hoge + "+" + this.foo); (function(){ // 同じくfuga+bar と表示される console.log(this.hoge + "+" + this.foo); })(

    JavaScriptのthisの覚え方 - Qiita
    fjwr38
    fjwr38 2013/01/31
    未だによく分かってない
  • 最速インターフェース研究会 :: 実践JavaScriptリファクタリング

    同じ事をやるにも、いろんな書き方があるわけでいかにして短くてわかりやすいコードを書くかというノウハウを紹介します。 例として"abcde"を80回繰り返した文字列を作るとして実際に自分のコーディングスタイルがどんな風に変化していったのか、という。 短くなるのは確かなんだけどわかりやすいかというと、人によるかもしれない。 グローバル関数を定義2年前なら、多分こういう具合だった。 //ふつうに関数として定義する function x(str,num){ var tmp = ""; for(var i=0;i<num;i++){ tmp += str; } return tmp; } x("abcde",80) Stringのメソッドとして定義1年前だとこんな感じ。 //Stringのメソッドとして定義する String.prototype.x = function(num){ var tmp

  • Learning Advanced JavaScript

    Double-click the code to edit the tutorial and try your own code. This tutorial contains code and discussion from the upcoming book Secrets of the JavaScript Ninja by John Resig. Our Goal Goal: To be able to understand this function: // The .bind method from Prototype.js Function.prototype.bind = function(){ var fn = this, args = Array.prototype.slice.call(arguments), object = args.shift(); return

  • 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