タグ

JavaScriptとjavascriptに関するnyangryのブックマーク (350)

  • JavaScriptのプロトタイプチェーン - Qiita

    元ネタ:JavaScriptはいかにしてprototypeを捨てクラスベース継承を得るのか - なんたらノート第三期ベータ なんか色々突っ込みたかったので。 この人はプロトタイプチェーンでクラスベースの言語と同じことをやろうとしているのかな。 プロトタイプチェーンは、ただの道具 npm にあるほとんどのライブラリがチェーンを活かして作られてない理由が説明できない。 プロトタイプチェーンは、それ自体ただの道具です。ほとんどのライブラリで使われないと有用ではない、なんてことはないはずです。 そもそも、プロトタイプチェーンの仕組みは結構利用されています。気づいていないだけ、じゃないですかね。 メソッドとそれ以外のプロパティ ちょっとまって、JavaScript のプロトタイプチェーンの教科書でこの、n という初期化パラメータを持つオブジェクトの継承はどういうふうに実装したっけ?? プロトタイプチ

    JavaScriptのプロトタイプチェーン - Qiita
  • JavaScriptはいかにしてprototypeを捨てクラスベース継承を得るのか - なんたらノート第三期ベータ

    きっかけは、prototype と constructor と __proto__ の関係を再確認していたときでした。JavaScriptはこうだけど、これって、AltJSな言語の継承はどうなってるんだろうと思って試したくなりました。 ちょっと気持ち的に、なんだか宗教に入ったみたいに俺は JavaScript がわかったって声高に言う人、だいたいみんな、プロトタイプチェーンによる移譲がクラスベースの継承に束縛されていた思考のブレイクスルーなんだぜ、みたいに言うんだけど、いったいそれがどれほど素晴らしいものなんだろうと考えてしまい... もしプロトタイプチェーンがそんなに素晴らしいんなら、npm にあるほとんどのライブラリがチェーンを活かして作られてない理由が説明できない。もしかしたら、仕組みがいくら面白くても、実際のメンタルモデルにフィットせず、実は使い物にならないんじゃないか ----

    JavaScriptはいかにしてprototypeを捨てクラスベース継承を得るのか - なんたらノート第三期ベータ
  • ストリーム表現とその変換 - ✘╹◡╹✘

    データをストリームとして表現する方法と、ストリームを変換する方法を紹介する。 ストリームはメッセージが流れる川である Pub/Subメッセージングモデルでメッセージを流すためのオブジェクトのことをストリームと呼ぶことにする。ストリームにはメッセージをPublishでき、またメッセージを受け取ったときの処理をSubscribeできる。例えばキーボードからの入力をPublishして、内容をコンソールに出力するような処理をSubscribeできる。 kamo.jsでストリームを表現する ストリームについて説明するために、kamo.jsというストリームを表現するためのライブラリをつくった。kamo.jsは、ストリームを作成するためのkamo.Streamというコンストラクタ関数を提供する。このコンストラクタ関数から作成されたオブジェクトは、publishとsubscribeというメソッド(※プロパ

    ストリーム表現とその変換 - ✘╹◡╹✘
    nyangry
    nyangry 2014/08/21
    超参考になる
  • JavaScript Promiseの本

    この書籍はCreative Commons Attribution-NonCommercialの ライセンス で公開されています。 また、PDFとしてレンダリングしたバージョンは以下からダウンロードすることができます。

    JavaScript Promiseの本
  • 実践Backbone.Marionette 現場の悩みと解決まで

    2014/1/22 gooラボopen tech talkで話したBackbone.jsとMarionette.jsの話です。

    実践Backbone.Marionette 現場の悩みと解決まで
  • The Little Book on CoffeeScript - Classes

    クラス JavaScriptのクラスは純粋主義者にとってニンニクがドラキュラに対して与えるものと同様な影響を持っていました。とはいえ、正直に言ってあなたがそのような傾倒をお持ちでしたらCoffeeScriptのを呼んだりはしないでしょう。しかし、クラスは他の言語と同じようにJavaScriptでもとても便利であると判明しました。そしてCoffeeScriptは素晴しい抽象化を提供します。 その裏では、CoffeeScriptはJavaScriptのネイティブなprototypeをクラスを作成するのに用いています。少しの構文糖を静的なプロパティの継承とコンテキストの永続化のために用いています。開発者としてのあなたに見えるのはclassキーワードだけです。 class Animal この上の例ではAnimalがクラス名であり、かつ結果としてインスタンスの作成に用いる変数です。裏側ではCoff

  • (* programming -> girl -> ? *) | 業務アプリ実装にFRP使ってみた

    Bacon.jsという、Functional Reactive Programming のFrameworkを使ったJava Scriptライブラリを使って業務アプリを書いてみました。関数型の考え方をふんだんに使いつつも、GUIなどのユーザ入力を伴うような処理に柔軟に対応している、マイナーながら優れたライブラリです。 実際にBacon.jsを使って実装してみて、何が良かったかなってところを、 ちょっと素人なりに色々と考えてみました。 1. 出てくるワードが直感的であるBaconでは、EventStream, Propertyなどといった独自のワードがいくつか出てきます。 ライブラリを読んで色々と使うのは大変だなあと個人的にはよく思いますが、Baconに関しては、新しい概念を取り入れているのにも関わらず、非常に直感的且つイメージがつきやすいワードを選択しているので、頭の中に構造を描きやすい仕

    (* programming -> girl -> ? *) | 業務アプリ実装にFRP使ってみた
  • Bacon.jsで眺めるFunctional reactive programming - ryiwamotoのブログ

    JavaScriptのFunctional reactive programming(FRP)ライブラリ「Baconjs」を使ってFRPの考え方を勉強してみたメモ。 なお、このメモはFRPの勉強のためにいくつかの資料をざっくりまとめただけなので、Bacon.jsの使い方は解説しない。 なのでBacon.jsの使い方を知りたいだけなら元記事を読んだほうが良い。 Bacon.jsのReadme Bacon.jsのチュートリアルブログ(これとかこれ) 三行で FRPでは従来のプログラミングでは間接的にしか扱えなかった「徐々に変化する値」を第一級のオブジェクトとして扱うことができる。 さらに関数型のcompositionalな性質が合わさって素敵。 Bacon.jsは良いものだ。 従来のプログラミングでは時間とともに変化する値の扱いが難しい 例えば次のフォームの例を考えてみる。 <form> <i

    Bacon.jsで眺めるFunctional reactive programming - ryiwamotoのブログ
  • シングルページアプリづくりのJavaScriptフレームワーク比較 - ワザノバ | wazanova

    http://blog.andyet.com/2014/08/13/opinionated-rundown-of-js-frameworks 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 開発言語やフレームワークの比較は、参考になるところはありつつも、その結果、不愉快な気分になる人がいるわけですが、それを懸念して、「(これを読んだ人は、他人の)意見を読んでいるだけだと思い返してほしい。貴方にどうすべきだと言ってるのではなく、自分にもしくはチームのために何がよいかは自分で判断すべきこと。」と前置きして、Henrik Joretegが、JavaScriptフレームワークについて私見をシェアしています。 反対意見も併記しようと思ったのですが、TwitterやHNでの反応がまだないようなので、注目すべきコメ

  • 【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary

    original: The introduction to Reactive Programming you've been missing (by @andrestaltz) (translated by @ninjinkun, reviewed by @ma0e) あなたはリアクティブプログラミングと呼ばれる新しい方法が気になっている。 勉強するのは大変で、良い教材がないのでさらに難しい。私が勉強を始めたときは、まずチュートリアルを探した。見つけたのは一握りの実践的なガイドだけ、しかもそれらは表面をなぞっているだけで、リアクティブプログラミングのアーキテクチャ全体像を構築しようとしてはいなかった。ある関数を理解するのに、ライブラリのドキュメントは役に立たないことがある。 これを見て欲しい。 Rx.Observable.prototype.flatMapLatest(selector,

    【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary
  • Patterns For Large-Scale JavaScript Application Architecture

    Today we're going to discuss an effective set of patterns for large-scale JavaScript application architecture. The material is based on my talk of the same name, last presented at LondonJS and inspired by previous work by Nicholas Zakas. Who am I and why am I writing about this topic? I'm currently a JavaScript and UI developer at AOL helping to plan and write the front-end architecture to our nex

  • The Mediator Pattern

    descriptionThe American Heritage dictionary defines the word mediator as "one that mediates, especially one that reconciles differences between disputants." In this manner, the mediator pattern usually implements a single object that becomes a shared resource through all of the different pieces of an application. It's a higher-level version of pub/sub in that it's commonly used to communicate acro

  • JavaScript フレームワークがデータバインディングを実現する4通りの手法

    最近流行りの JavaScript MV* フレームワークは、どれもデータバインディングをサポートしているが、実現方法はフレームワークによって異なる。 この記事では、各種フレームワークがどのようにモデルの変更を検知しているかを次の 4 つのパターンに分類して紹介する。 モデル クラス方式 (Ember.js、Backbone.js、Ractive.js、Knockout.js など) 力ずく方式 (AngualrJS) モデル書き換え方式 (Vue.js) Object.observe 方式 (Polymer) パターン名は私が勝手に名づけたものだけど、このへんの雰囲気が理解できれば、フレームワークごとの個性が分かるだろうし、利用イメージもわきやすいんじゃないかと思っている。 1. モデル クラス方式 「モデルとして扱えるのはフレームワークが用意したモデル クラスのインスタンスだけ」という

    JavaScript フレームワークがデータバインディングを実現する4通りの手法
  • いつ JavaScript MVC フレームワークを使ったら良いの? - usotech

    When does it make sense to use an MVC framework for Javascript? より、Akshar Prabhu Desai さんの回答。 使うと良いとき データとレンダリングが分離出来るならいつでも。 Ajax ヘビーなアプリケーション。 同じデータをいろんなやり方で表示するとき。 何度も使われる表示要素があるとき(例えば voteup ボタンとかね)。 沢山のインタラクションがあるとき(例えば Like ボタンとかね)。 サーバーが JSON/XML のインターフェースしか持ってないとき。 典型的な例 Stock Market Ticker Social networking app Data visualizatios app 使っちゃ駄目なとき 沢山のリクエスト(大量の小さなリクエスト)を捌けないサーバー インタラクションの少ないペー

    いつ JavaScript MVC フレームワークを使ったら良いの? - usotech
  • クライアントサイド JavaScript のパフォーマンス改善には backburner.js が便利! - tricknotesのぼうけんのしょ

    DOM 処理や Ajax など、JavaScript が外の世界とやり取りする部分というのは、一般的に待ち時間を多く必要とします。 パフォーマンスを改善しようと思った時に、ロジック部分でコツコツと節約するより、まずコストが高い処理を行わないようにするということで、驚くほどの効果を経験をされたことはありませんか? 今までパフォーマンス測定をされた方であればピンとくる部分があることと思います。 そんな時に役に立つのが、今回ご紹介する backburner.js です。 ebryn/backburner.js - GitHub backburner.js って? backburner.js とは Ember.js の run loop モジュールから切りだされたとても小さなライブラリで、短時間に集中的に発生するメソッド呼び出しの回数を制限したい場合などに利用することができます。 backburn

    クライアントサイド JavaScript のパフォーマンス改善には backburner.js が便利! - tricknotesのぼうけんのしょ
  • クラスの落とし穴1 - プロパティの初期化 - Qiita

    クラスの落とし穴1 - プロパティの初期化 (この投稿) クラスの落とし穴2 - メソッドとクロージャ クラスの落とし穴3 - 継承 クラスの落とし穴4 - プライベート変数の実装 はじめに javascriptでもクラスを作成する事が多くなってきました。 しかし、「javascriptにはクラスがない」とよく言われ、実装側が擬似的にクラスを定義しています。 クライアントサイドで大規模開発が増えてきたため、オブジェクト指向の概念で実装したいと思っているのでしょう。 javascriptでは安易な疑似クラスの作成によって見事落とし穴にはまる事があります。 ここでは、javascriptにはないクラスをうまく実装する方法を順に追って説明します。 "落とし穴とは、 うまく動いているけど気がついていないだけで実はマズい実装の事 とします 簡単なクラスの実装 クラスの定義には幾つかの方法がありま

    クラスの落とし穴1 - プロパティの初期化 - Qiita
  • contextを使ってfat arrowなメソッドを書きなおそう #Backbone.js #CoffeeScript - Qiita

    Backbone.jsとCoffeeScriptをお使いのみなさん、こんにちは。 イベントのcallbackに登録するメソッドをfat arrowで定義してませんか? Backbone.Events#onの3番目の引数contextを使いましょう。 メソッドをfat arrowで定義するとmixin出来ない問題についてもちょこっと触れます。 例 イベント通知のために、グローバルなPubSubが定義されています。 NyaModel#initializeで、NyaModel#sayMessageメソッドをPubSubに登録しています。 PubSubから(」・ω・)」うー!イベントを受け取ると、NyaModel#sayMessageが呼ばれます。 NyaModel#sayMessageは、NyaModelのmessage属性をコンソールに出力します。 今までの僕のfat arrowなやりかた P

    contextを使ってfat arrowなメソッドを書きなおそう #Backbone.js #CoffeeScript - Qiita
    nyangry
    nyangry 2014/08/06
    thisのコンテキスト周り、ハマってたー
  • 大きなPubSub、小さなPubSub。 - ぶれすとつーる

    JavaScriptにおいてもそのほかの言語においても疎結合というのは結構大きなテーマの一つだと思います。 そんな疎結合を促す実装としてPubSubがにわかに脚光をあびてますね。 にわかというより定期的に盛り上がってる気がしますが。 僕はあまりデザインパターン厨ではないのであまり語れるようなことはないのですが疎結合なコードというのはコードの再利用性が高まり幸せ度がかなり高いものだと思います。 そんなPubSubを強力に後押しするライブラリは世の中星の数ほどあるわけですが、ほんの少しだけ融通が利かないなーって思うこともあって半年くらい前に自作しました。 そう、95%くらい車輪の再発明です。 その名もPubsubJS(https://github.com/nazomikan/PubsubJS)。 どこかですごく似た名前を聞いたことはあるわけですがまぁそのへんはおいといて何がいっぱいあるPubS

    大きなPubSub、小さなPubSub。 - ぶれすとつーる
  • [JavaScript] jQueryの$.proxy - 個人的なまとめ

    JavaScriptでcallback処理で呼元のthisを参照したい時がよくあります。 例えば、下のような感じです。 var Hoge = function(name){ this.name = name; }; Hoge.prototype.method = function(){ var url = ''; var param = {}; $.post(url, param, function(data){ alert(this.name); }); }; var hoge = new Hoge('aaa'); hoge.method(); で、thisの中身はHogeではないので、postのundefinedがalertに表示されます。 これを解決するには、以下のようにbindメソッドを使うとOKです。 Hoge.prototype.method = function(){ var

    [JavaScript] jQueryの$.proxy - 個人的なまとめ
  • Learn web development  |  web.dev

    Web Platform Dive into the web platform, at your pace.

    Learn web development  |  web.dev