Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 中級以上のJavaScriptプログラマを目指す上で、避けては通れない壁の一つは クロージャ(Closure) だと思います。「関数の外側で定義された変数を持つ関数の実行時オブジェクトです」とさらっと説明されることが多いですが、シンプルなだけに理解したつもりになって実は使いどころが分からないってことになりがちです。きちんと自分のものにするには基本から丁寧に理解しないとダメですねってことで、今回はクロージャについてその背景から調べてみたいと思います。 歴史と語源 まずは歴史から振り返ってみたいと思います。Wikipediaによる
Developers Summit 2015講演資料 新世代「JavaScriptコントロール」が登場 ― 新「Wijmo(ウィジモ)」の実力 ― http://event.shoeisha.jp/devsumi/20150219/session/659/
クロージャはわかりづらい。 なんでかと言うと、以下の2つです。 名前 定義がよくわからない Wikipediaさんなんかで調べると。 クロージャ(クロージャー、英: closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数で実現している。 関数閉包!! 関数閉包、意味不明すぎる。なんかこの字面が意味分からなくしようとしているような気配すら感じる。(とはいえ、じゃあどんな名前が良いかと言えば、わかりませんし。それに一般的には「クロージャ」で通っていますから、別にいいのですが。) 関数ヘイホウってなに?初めてクロージャを学ぶような僕は、もう、むしろ笑えます。ちなみに、その先の**「関数オブジェクトの一種」とか「ラムダ式」**なんかも知りません。 けど、JavaScriptのクロージャの事例は、とても分かりやすい。 関数の中に関数がありま
さて、前の記事からずいぶん時間が経ってしまいましたが「piine!」の技術的こだわりに触れておこうと思います。 こだわりポイント 力学モデル 操作方法はタップだけ 非ネイティブアプリ Webフォント 技術的こだわりポイント Closure Library + Socket.IO Github pages + AmazonEC2 それぞれを順に見ていきましょう。 こだわりポイント 力学モデル デモを用意しました。 まずは存分に力学モデルをお楽しみください。 プロジェクターに表示される側のpiine!では、挨拶を聞いているユーザーが点として表示されます。 ユーザーが参加・退出するとき点が増えたり減ったりするわけですが、このとき点の配置を滑らかに遷移させるために力学モデルを使っています。円上の点はそれぞれの距離が近いほど強い斥力が働きます。この斥力によって、それぞれの点は円を均等に分割する点へと
はいこんにちはこんにちは! 今日はラムダ式でクロージャとDSLの解説をします。 ガチなラムダ計算の話ではまったくないのでご安心ください。函数型プログラミング言語の話でもないので怯える必要はありません。 それと、実用なDSLそのものではなく、どちらかといふと ふざけたDSL をシンプルに作ってみました! といふ例題なのでその点はご承知おきください。 謎のコピペとDSL まづはこちらのソースコードをお読みください。 # -*- Coding: utf-8 -*- scripter = ->(*args){->{puts args.join("\n")}} title = ->(text){"『#{text}』\n"} paragraph = ->(*args){args.join("\n")+"\n"} chara = ->(name){ ->(text){"#{name}「#{text}」"
先日JSHint 1.1.0がリリースされ、そのリリースノートに気になる記述がありました。 Adds new option gcl to make JSHint style checks compatible with Google Closure Linter. うそーまじでーなにそれヤバイ! 普段は仕事でClosureにどっぷりなせいもあってClosure Linterを使っているんですが、Closure LinterってJSDocとかお作法的なとこはチェックしてくれるけど、他のLintツールが当たり前にチェックしてくれるとこはやってくれないんですよね。たとえばvarの付け忘れとか。 Closure Compilerを使ってコンパイル時にチェックすることもできるけど、規模が大きくなってくるとその結果が出るまでに10分とか待たないといけなくっていやな感じー。Closure Linterと
日頃から愛用してるIDEのPhpStorm 6 がリリースされました。JavaScriptにコンパイルされる系の言語のサポートが強化されたのが目立ちますね。 今日は、6の新機能というわけではないですが、WebStormを使ってJavaScriptファイルをMinifyする方法について紹介します。 概要 WebStormでjsファイルを編集したら自動的にMinifyされるようにします。JavaScriptにおいてMinifyとは余計な空白をとったり変数名を短くしたりして、機能的動作を変えずにJavaScriptのファイルサイズだけ小さくすることをいいます。今回はClosure Compilerを使います。 インストール まず、Minifyを実行するプログラムをダウンロードします。Getting Started with the Closure Compiler Applicationからリン
を2年前くらいに作ったのだけど、久々にGoogle Closure Libraryを使いたくなって、そうなるとテストも書かないとなので引っ張りだして使おうと思ったのですが、なにせ2年前に作ったものなので、ソースコードはレガシー感が漂ってて、使ってるPhantomJSのAPIもdeprecatedになっていたりしたのでいろいろ直してアップデート(リポジトリ名も少し変更)。 waka/closure-library-phantomjs 単一のテストファイルのテストでもマルチテストランナーを使った複数テストファイルのテストでも同じ使い方です。 詳しい使い方やオプションは、READMEに書いた。 最近Mochaでテストを書くことが多いのですが、出力形式をいろいろ選べるの楽しくていいなと思ったので、インターフェース切ってリポーターをいくつか使えるようにした。 実際よく使うのは、見やすいSpec形式と
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く