javascriptの備忘録

javascriptの備忘録を掲載します。 実用的なコードを掲載していきます。

TypeScriptでジェネリックのコンストラクタ作成関数

http://stackoverflow.com/questions/17382143/how-to-create-a-new-object-from-type-parameter-in-generic-class-in-typescript

コンストラクタ作成関数 

コンパイルエラー
function activatorNotWorking<T extends IActivatable>(type: T): T {
    return new T(); // compile error could not find symbol T
}

You need to write this:

newを明示的に表現

function activator<T extends IActivatable>(type: { new(): T ;} ): T {
    return new type();
}
 
var classA: ClassA = activator(ClassA); 

http://ari-java.doorblog.jp/ 

JavaScript Garden は


JavaScriptというプログラム言語の一番奇妙な部分についてのドキュメント集です。


javascriptの不思議なことが記載されていて面白い。
http://bonsaiden.github.io/JavaScript-Garden/ja/


以下の使用法はエラーとなる。
2.toString(); // シンタックスエラーが発生する 

ただ、以下の場合は正常に動く。
2..toString();
2 .toString();
(2).toString();


なぜ使えるか、その不思議が記載されています。
 
----------------------------------------------------------
VB C# .NET Freamworkの備忘録
http://ari-it.doorblog.jp/
javascriptの備忘録
http://ari-java.doorblog.jp/
--------------------------------------------------------- 

backgroudcolorをRGBからHEXに変換

javascript内でエレメントの色を取得すると、ブラウザやバージョンごとに表示形式が異なる。
表示形式には2種類があり、RGBとHEX(#000000)形式です。

お使いのブラウザで下記コードで実行すると表示形式が分かる。

$(id).style.color = black;
alert($(id).style.color);



ただ、javascriptで色を扱い、処理する際に不便となるため、どちらかの形式に統一したい。
今回はRGB形式であればHEX(#000000)に変換する関数を紹介します。

function colorToHex(color) {

    if (color.substr(0, 1) == '#') {
        return color;
    }
    var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color);

    var red = parseInt(digits[2]);
    var green = parseInt(digits[3]);
    var blue = parseInt(digits[4]);
    
    var rgb = blue | (green << 8) | (red << 16);
    return digits[1] + '#' + rgb.toString(16);
};


----------------------------------------------------------
VB C# .NET Freamworkの備忘録
http://ari-it.doorblog.jp/
javascriptの備忘録
http://ari-java.doorblog.jp/
--------------------------------------------------------- 

このページのトップヘ