タグ

js classに関するbleu-bleutのブックマーク (5)

  • JavaScriptにもクラスがやってきた!JavaScriptの新しいclass構文をマスターしよう

    JavaScriptにもクラスがやってきた!JavaScriptの新しいclass構文をマスターしよう 高津戸壮(株式会社ピクセルグリッド) ECMAScript 2015(ECMAScript 6)で新たに追加された待望のclass構文について、その概要をサンプルコードを交えて紹介します。 これまでのJavaScriptにおけるクラス 多くのプログラミング言語はクラスを作れる機能を持っていますが、JavaScriptにその機能は用意されていませんでした。しかし、JavaScriptにはprototypeという柔軟な仕組みが存在しており、このprototypeを利用することで、他の言語で表現されている「クラス」と似たような振る舞いを再現することが可能でした。 それは例えば、こんなふうにです。 /* Cat雛形の作成 */ function Cat(name) { this.setName(

    JavaScriptにもクラスがやってきた!JavaScriptの新しいclass構文をマスターしよう
  • JavaScriptにおける継承のパターン4種類の概要と対比 | POSTD

    JavaScriptはとても強力な言語です。強力がゆえ、実はプロトタイプをデザインしたり、オブジェクトのインスタンスを生成したりするのに何種類もやり方があります。それぞれの方法には長所も短所もあります。そこでJavaScript初心者の皆さんのために私がそのあたりを整理して説明したいと思います。今回の投稿は、以前私が書いた 「JavaScriptを分類するな」 の続編です。前回の投稿でたくさんのコメントをいただき、コードの例を出してほしいをいう反応をいただいたので、今回はそれらにお応えします。 JavaScriptはプロトタイプを使って継承 つまり、JavaScriptでは、オブジェクトは別のオブジェクトを継承することができます。 { } 波括弧を使って生成されるJavaScriptの基的なオブジェクトは、唯一のプロトタイプとして Object.prototype をプロトタイプに持ちま

    JavaScriptにおける継承のパターン4種類の概要と対比 | POSTD
    bleu-bleut
    bleu-bleut 2015/08/26
    まずは一番目のコンストラクタパターンをしっかり理解、、、
  • クラスの落とし穴3 - 継承 - Qiita

    クラスの落とし穴1 - プロパティの初期化 クラスの落とし穴2 - メソッドとクロージャ クラスの落とし穴3 - 継承(この投稿) クラスの落とし穴4 - プライベート変数の実装 はじめに 今回はクラスの継承の違いによる落とし穴です。 継承とプロトタイプチェーン。同じようで同じじゃないやっぱりある落とし穴はなんでしょうか。 javascriptはプロトタイプベースのため、PHPjavaのように継承の方法に明確な構文がありません。 そのため、継承に似たものを工夫して実装することになります。 少なくとも継承にプロトタイプチェーンを使用すれば良いだろうというのは理解されていると思いますが、実際にはこれが一番の方法で後は全部だめ!というパターンはありません。 ただ、安易な実装は思っている動作とじつは異なる動作をしている事があります。 ここでは一番簡単な方法から継承を実装して確認します。 よくある

    クラスの落とし穴3 - 継承 - Qiita
  • クラスの落とし穴2 - メソッドとクロージャ - Qiita

    クラスの落とし穴1 - プロパティの初期化 クラスの落とし穴2 - メソッドとクロージャ(この投稿) クラスの落とし穴3 - 継承 クラスの落とし穴4 - プライベート変数の実装 はじめに 前回は、プロパティをコンストラクタで 初期化しなかった場合に起きる落とし穴を投稿しました。 今回は、メソッドをコンストラクタで 初期化した場合に起きてしまう落とし穴を投稿します。 プロパティとメソッドでコンストラクタ初期化するかしないか推奨の実装方法に差があるのは、javascriptの興味深いところです。 クラス定義 まずは前回のおさらいで、クラス定義を次のように書くようにしていました // クラスを定義 function Klass1 () { // プロパティ this.name = 'foo'; this.hobbies = []; }; // メソッド Klass1.prototype.set

    クラスの落とし穴2 - メソッドとクロージャ - Qiita
    bleu-bleut
    bleu-bleut 2015/08/15
    メソッドはコンストラクタのプロパティではなく、prototypeで定義をしたほうがメモリの節約になりよりいい。が、クロージャの活用以降の話がついていけてない。
  • クラスの落とし穴1 - プロパティの初期化 - Qiita

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

    クラスの落とし穴1 - プロパティの初期化 - Qiita
    bleu-bleut
    bleu-bleut 2015/08/15
    コンストラクタで変数を初期化しないとダメだよ〜
  • 1