タグ

javascriptとthisに関するfjwr38のブックマーク (12)

  • Backbone.jsで全イベントをconsoleに出力するデバッグ用スクリプト - Qiita

    最近こんな記事を見かけて、フーンと思いながら眺めていたら、便利そうな内容(Ease debugging of Backbone events)を見かけたので、自分なりにアレンジしてみました。 Backbone.jsで作成したオブジェクトで発火した全イベントをこんな感じでconsoleに出力してくれます。 ソースは以下(コメントの指摘を受けて一行修正しました)。 (function () { 'use strict'; // ログのスタイル var logStyles = { timestamp: { color: 'gray' }, label: { color: 'white', 'border-radius': '2px' }, event: { color: 'blue', 'font-weight': 'bold', 'font-size': '110%' } }; // ラベルの

    Backbone.jsで全イベントをconsoleに出力するデバッグ用スクリプト - Qiita
  • 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の関数には、やたらに何でも突っ込める - 檜山正幸のキマイラ飼育記 (はてなBlog)

    jQueryのドル記号「$」は、理不尽なくらいに大活躍します。あまりにも何でもできるので、「ありゃ何なんだ?」と思いますよね。$(...) という形で呼び出せるので、関数なのは確かです。JavaScriptでは、ひとつの関数名に対して呆れるくらいにオーバーロード(多義的定義)ができます。 内容: コンストラクタあるいはクラスとしての関数 メソッドとしての関数 名前空間あるいはモジュールとしての関数 関数/オブジェクトとしての関数 試してみる コンストラクタあるいはクラスとしての関数 関数は、オブジェクトのコンストラクタとして使用できます。 function Point(x_, y_) { this.x = x_ || 0; this.y = y_ || 0; } お尻にアンダースコアが付いた引数名 x_, y_ は省略可能のつもりです。new Point()、new Point(2)、ne

    JavaScriptの関数には、やたらに何でも突っ込める - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • JavaScriptでJava風にsuperクラスにアクセスするライブラリ作った

    https://github.com/ukyo/jssuper ※ProxyとECMA5が実装されている処理系で動かしてね。 追記:prototypeチェーンにsuperが2つ絡むとループすることに気がついた・・・のだけど、解決法がわからん。superは一回だけでお願いします(これはひどい)。 まぁ、ソースコードはこれだけなんですが。しかしながら、プロパティだとsuperって書いても一応平気なんですね・・・。 Object.defineProperty(Object.prototype, 'super', { get: function() { var superProto, method, constructor; superProto = Object.getPrototypeOf(Object.getPrototypeOf(this)); method = function(rcvr

    JavaScriptでJava風にsuperクラスにアクセスするライブラリ作った
  • 最速インターフェース研究会 :: 実践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

  • 第16回 JavaScriptのthisとcall | gihyo.jp

    こんにちは、太田です。前々回、前回とJavaScriptにおける継承について学習しました。今回はそれに深く関わるthisについて学んでいきます。 JavaScriptのthisはややクセのある動作をするように思えるかもしれませんが、仕組みをしっかり把握すれば実に簡単です。特に重要なのは次の2点です。 thisが何を指すかは関数の呼び出し方で決定する thisは関数スコープに存在する特殊な変数である インスタンスとしてのthis では、まずはコンストラクタ内でのインスタンスとしてのthisを見てみましょう。 コンストラクタとthis function A(name){ this.name = name; } A.prototype.getThis=function(){ return this; }; var a = new A('aaa'); console.log(a); console

    第16回 JavaScriptのthisとcall | gihyo.jp
  • 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

  • 疎結合なUIコンポーネントの作成について - monjudoh’s diary

    複数画面で使えるAjax formダイアログのコンポーネントを作る 初期状態 Google CalendarのようなWebアプリを想像してください。 1日が1個のセルになっていて、セルをクリックしたらスケジュール登録ダイアログが表示され、 入力して登録ボタンを押すとスケジュールが登録され、セルの中に登録されたスケジュールが表示されます。 イメージ define([ 'schedule-model' ,'schedule-api' ,'schedule-to-selectors' ,'growl' ,'app/schedule-dialog-template' ,'debug' ,'jqueryui/dialog' ],function( ScheduleModel ,ScheduleApi ,scheduleToSelectors ,growl ,scheduleDialogTemplat

    疎結合なUIコンポーネントの作成について - monjudoh’s diary
  • Wonder-boys.net

    The domain wonder-boys.net may be for sale. Please click here to inquire Wonder-boys.net Related Searches: song lyrics Accident Lawyers All Inclusive Vacation Packages 10 Best Mutual Funds Contact Lens Trademark Free Notice Privacy Policy

  • Collection & Copy - JavaScriptにおけるプライベートメンバ

    JavaScriptにおけるプライベートメンバ 翻訳 原文:Private Members in JavaScript Copyright 2001 Douglas Crockford. All Rights Reserved Wrrrldwide. JavaScriptJavaScript: 世界で最も誤解されたプログラミング言語です。JavaScriptのオブジェクトが、プライベートなインスタンス変数およびインスタンスメソッドを持てないため情報を隠蔽する能力が欠けていると思われることがあります。しかし、これは誤解です。JavaScriptのオブジェクトは、プライベートメンバを持つことができます。その方法は以下です。 オブジェクト JavaScriptはオブジェクトを基礎としています。配列はオブジェクトです。関数もオブジェクトです。オブジェクトもオブジェクトです。それならば、オブジェク

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

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

    IT戦記 - JavaScript の this について
  • JavaScriptのthisキーワードをちゃんと理解する - builder by ZDNet Japan

    前回までのおさらいと今回のあらすじ 前回までの記事で、JavaScriptでオブジェクト指向を行うにあたって必要な知識を一通り網羅しました。その中で、オブジェクトに属する関数=メソッドについても触れました。 今回は、オブジェクトやメソッドと深い関わりのあるキーワード、「this」について解説したいと思います。 thisキーワードについてきっちり理解する 「thisキーワードについてお話しする」と言いましたが、実はthisキーワードは連載中で既に触れています。連載第9回で、このように述べています。 「(thisキーワードは)実行中のコードが「自分自身」を表すオブジェクトにアクセスするためのキーワードです。」 「実行中のコード」とされているのは、関数(メソッド)などの実行可能なコードということです。つまり、thisキーワードはメソッドをメンバに含むオブジェクトを指す、と言って良いでしょう。 例

    JavaScriptのthisキーワードをちゃんと理解する - builder by ZDNet Japan
  • 1