タグ

2014年12月16日のブックマーク (6件)

  • Javascriptのbind関数と部分適用 〜 JSおくのほそ道 #015 - Qiita

    こんにちは、ほそ道です。 今回はFunction.prototype.bind関数を取り上げます。 このbind関数も前回のcall/apply関数同様、開発者の意図が反映される関数かと思います。 目次はこちら bind関数の仕様 bind関数はFunction.prototypeに属し、新たな関数を生成して返します。 下記で仕様を見ていきます。 その1:thisを強制変更する 第一引数は関数内で参照されるthisを置換えます。 // 人間 function Man(name) { this.name = name; this.greet = function() { console.log("Hello, my name is " + this.name); }; } // ネコ function Cat(name) { this.name = name; } // 人間の挨拶 var

    Javascriptのbind関数と部分適用 〜 JSおくのほそ道 #015 - Qiita
    h5y1m141
    h5y1m141 2014/12/16
    “bind関数はFunction.prototypeに属し、新たな関数を生成して返します。” さっきの記事だけだとイマイチ理解が進まなかったけどこれ読んだら大分理解出来た。
  • JavaScriptでbind()を使って部分適用する | POSTD

    JavaScriptの中にはコードをもっとシンプルで見やすくできるパターンがあるのに、あまり使われていないものがあります。皆さんも Function.prototype.bind はご存じでしょう。頻繁に使われていた var that = this や var self = this の代わりになる関数です。よくあるのが以下のような例です。 this.setup = function () { this.on('event', this.handleEvent.bind(this)); }; 第1引数が bind (束縛)され、返される関数内で this として働きます。あまり知られていませんが bind は複数の仮引数を取ることができ、 bind された関数が呼び出されると bind される後続のすべての仮引数は、その仮引数リストの前に付加されます。 つまり以下のように、関数を部分適用す

    JavaScriptでbind()を使って部分適用する | POSTD
    h5y1m141
    h5y1m141 2014/12/16
    この辺りの理解が甘いことを文章読みながら実感した
  • 元Appleのエンジニアが開発したiPadをMacのサブディスプレイ(Retina @ 60Hz + Touch対応)として利用可能にするアプリ「Duet」がリリース予定。

    USBケーブルでiOSデバイスとMacを接続し、iOSデバイスをMacのサブディスプレイとして使用できるアプリ「Duet」がリリース予定だそうです。詳細は以下から。 Business Insiderの記事によるとDuetは元AppleエンジニアRahul Dewanさん(@rahulda1)が開発したユーティリティーアプリで、iOSデバイスをMacのサブディスプレイ化でき、OS X 10.9以上、iOS 5.1.1以上のデバイスで使用可能。 同様のアプリにAirDisplayなどがありますが、DuetはAir Displayと違い「Retina Displayと60Hzのリフレッシュレートに対応」「iOSデバイスのタッチスクリーンに対応」しiOSデバイスの性能をフルに引き出しているそうです。 In addition to giving you extra screen real esta

    元Appleのエンジニアが開発したiPadをMacのサブディスプレイ(Retina @ 60Hz + Touch対応)として利用可能にするアプリ「Duet」がリリース予定。
    h5y1m141
    h5y1m141 2014/12/16
    おー、これもう少し早くにでていたら、ASUSの15インチサブディスプレイ買わなかったかもなぁ
  • jasmine-node とRequireJS - 断章10100

    JavaScriptのテストツールにJasmineというものがあります。 通常はブラウザ上で動かすテストライブラリらしいのですが、jasmine-nodeというパッケージがあり、それを用いるとnode.js上でJasmineのSpecファイル(テストのソースコード)を実行できるまる。これを試す。 事前準備 実行用ディレクトリを作成し、中でjasmine-nodeとRequire.jsをインストールすること。 $ npm install jasmine-node requirejs ディレクトリ構成 以下のようなディレクトリ構成とします。 $ tree . . ├── node_modules/ # npm (node.jsのパッケージマネージャ) のインストール先 ├── spec/ # specファイル置き場 └── src/ # ソースコード置き場 Specファイル テストのため、以下

    jasmine-node とRequireJS - 断章10100
    h5y1m141
    h5y1m141 2014/12/16
    RequireJS使ったモジュールに対してJasmineでどうやってspec書いていいのかわからずハマったけどこれ見て大分理解できた。ここでスタートラインに立った状態なんでspec書きつつ、リファクタリングしていく方法を模索しないと
  • ti.map をちょっとだけ便利にしちゃう改造 - Qiita

    はじめに iOS 用 ti.map モジュールの記事になります。Android な方はごめんなさい。 さて、この記事は ti.map モジュールの基的な使い方ではなく、Objective-C では存在する機能を有効化するために、ちょっとだけ改造したものの解説になります。 ti.map Gesture Recognizer fork https://github.com/k0sukey/ti.map/tree/GestureRecognizer ti.map モジュールへタッチ系イベントを追加するフォークになります。よくある地図をタップした地点にアノテーションを追加したいときなどに使えるかと思います。また、ti.map には pitchEnabled と rotateEnabled はあるのですが、なぜか zoomEnabled が存在しません。地図をピンチで拡大縮小するのを許可するかしな

    ti.map をちょっとだけ便利にしちゃう改造 - Qiita
    h5y1m141
    h5y1m141 2014/12/16
    “八木さんのTitaniumとPubNubでリアルタイムサービスと組み合わせると、みんなで集合しながらメッセージが送り合えるアプリが作れちゃいそうですね!これを書いていてちょっと作ってみたくなっちゃいました。” イイね!
  • PHPでのクラス定義とJavaScriptでのクラス定義を対比させてみた - Qiita

    はじめに前置き CakePHPなどでWebアプリケーションを書いてて、JavaScript側のコードが思ったように書けずに苦労するケースが割りとあるのかなと思ってます。 その要因となるものは色々あると思うのですが、考えられるものの1つとして、PHPでのクラス定義とJavaScriptでのクラス定義とがうまく対比できない所にあるのかなと思って、参考になる情報がないかググってみました。 PHPJavaScriptにおけるオブジェクト指向を比較するというスライドは情報はとてもまとまってるのですが、自分が探していたそれぞれの言語でのクラス定義の方法を対比させるようなコード例が出ておらず、しかたがないので自分でコードを書いて対比させて折角なのでドキュメントにまとめることにしました。 注意 JavaScriptでのクラス定義の方法は色々なアプローチがあると思うのですが、自分がなれ親しんでるCoffe

    PHPでのクラス定義とJavaScriptでのクラス定義を対比させてみた - Qiita
    h5y1m141
    h5y1m141 2014/12/16
    PHPベースのWebサービスのお手伝いしててJavaScript側のコード書くのに他の方が苦労されてるような印象だったので、その苦労を少しでも減らせればと思ってまとめてみた。