タグ

ブックマーク / qiita.com/cocottejs (4)

  • クラスの落とし穴1 - プロパティの初期化 - Qiita

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

    クラスの落とし穴1 - プロパティの初期化 - Qiita
    ismage
    ismage 2013/10/05
    via JavaScriptタグが付けられた新着投稿 - Qiita http://qiita.com
  • カスタムエラーを作成する方法 - Qiita

    標準のErrorを拡張してプロパティを持ったCustomErrorを作成するのに、 はまってしまってやっと解決したので共有します。 継承のおさらい まずは、何の変哲もない継承の方法からおさらいします。 node.jsで普通に継承を行うと次のように実装する事が出来ます var util = require('util'); // 継承元 var Vehicle = function Vehicle (capacity) { this.capacity = capacity; }; Vehicle.prototype.capacity = 0; // 継承先 var Car = function Car (capacity, color) { Car.super_.call(this, capacity); if (color) { this.color = color; } }; util.

    カスタムエラーを作成する方法 - Qiita
    ismage
    ismage 2013/09/29
    via JavaScriptタグが付けられた新着投稿 - Qiita http://qiita.com
  • 「積み木の水槽」をjavascriptで解いてみた - Qiita

    何日か前に出題されていたものをjsでも書いてみました。 みなさんの回答を、投稿してからみようと思うので 同じや、さらに良いロジックがあるかもしれませんが、とりあえず。 左右から見える壁の高さと奥行きを調査し、見えない部分に水が入っていると考えています var test = function (input, output) { // 0が入っているところで分けて別々に計算して足す var blocks = input.split('0') , water = 0; // 分けたブロックごとに計算 blocks.forEach(function (data) { var block = data.split('') // 左影 , max1 = 0 , lsharp = block.reduce(function (x, y) { max1 = Math.max(y * 1, max1); x

    「積み木の水槽」をjavascriptで解いてみた - Qiita
    ismage
    ismage 2013/09/13
    via JavaScriptタグが付けられた新着投稿 - Qiita http://qiita.com
  • 「Y字路巡り」をjavascriptで解く - Qiita

    どう書くの問題面白いですね。 PHPものは既にあったのでjsでやってみました。 ちょっと時間がかかってしまったかな。 解決方法ですが、 rootは時計回りでルートを列挙します どこから来たのかをposで記録し、handleに従ってnext,posを計算するのを 繰り返しています var root = { A: ['D', 'C', 'B'] , B: ['A', 'C', 'E'] , C: ['A', 'F', 'B'] , D: ['A', 'E', 'F'] , E: ['B', 'F', 'D'] , F: ['C', 'D', 'E'] }; var test = function (input, output) { 'use strict'; var handle= {b: 0, r: -1, l: 1} , now = 'A' , pos = 2 , next , resul

    「Y字路巡り」をjavascriptで解く - Qiita
    ismage
    ismage 2013/09/12
    via JavaScriptタグが付けられた新着投稿 - Qiita http://qiita.com
  • 1