Hatena::Groupjavascript

lnzntのJavaScript日記 このページをアンテナに追加 RSSフィード

2010年11月18日(木)

Canvas API (その3) テキスト

| 21:11 | Canvas API (その3) テキスト - lnzntのJavaScript日記 を含むブックマーク はてなブックマーク - Canvas API (その3) テキスト - lnzntのJavaScript日記 Canvas API (その3) テキスト - lnzntのJavaScript日記 のブックマークコメント

firefox 3.6 で確認。

        // テキスト
        ctx.font = "48px 'Arial'";
        ctx.textAlign = "center";
        ctx.textBaseline = "middle";

        var text = "hello, world";
        var x = 100, y = 100;
        var maxWidth = 200;
        ctx.strokeText(text, x, y, maxWidth); // maxWidth はオプション

カリー化

| 08:59 | カリー化 - lnzntのJavaScript日記 を含むブックマーク はてなブックマーク - カリー化 - lnzntのJavaScript日記 カリー化 - lnzntのJavaScript日記 のブックマークコメント

カリー化は関数に引数を固定して新しい関数を生成する。

(2014.11.27 修正) 自己ツッコミ。この記述はちょっと違うというか、曖昧。

カリー化の説明は wikipedia:カリー化 を参照してください。

Function.prototype.method = function (name, func) {
    this.prototype[name] = func;
    return this;
};

Function.method('curry', function () {
  var slice = Array.prototype.slice,
      args  = slice.apply(arguments),
      that  = this;
  return function () {
    return that.apply(null, args.concat(slice.apply(arguments)));
  };
});

var add = function (a, b) { return a + b; }
var add1 = add.curry(1);
add1(6);   // 7