Pot.Struct.bind

{Function} Pot.Struct.bind ({Function} func, {Object} self [, {*} ...args])

Pot.js で利用可能。 PotLite.js では利用できません。

this と引数を束縛した関数を返します。

this を引数と共に束縛した新しい関数を作成し返します。
引数 func は対象の関数を指定します。
引数 self は対象となるオブジェクト (this) を指定します。
self 以降に任意の数の引数を指定すると、束縛する対象となります。
bind は、Function.prototype.bind (JavaScript 1.8.5 以上で有効) と似ています。

Pot.globalize() が適応されている場合、Pot.bind() が bind() で実行できます。

this と引数を束縛した関数が返ります。

var Hoge = function() {
    this.msg = 'Hello Hoge!';
};
Hoge.prototype.sayHoge = function() {
    Pot.debug(this.msg);
};

var hoge = new Hoge();

// direct
setTimeout(hoge.sayHoge, 1000); // undefined

// bind
setTimeout(Pot.bind(hoge.sayHoge, hoge), 1000); // Hello Hoge!

// with arguments
Hoge.prototype.sayHogeMsg = function(msg) {
  Pot.debug(this.msg + msg);
};

// direct
setTimeout(hoge.sayHogeMsg, 1000); // NaN

// bind
setTimeout(Pot.bind(hoge.sayHogeMsg, hoge, 'Hi!'), 1000); // Hello Hoge!Hi!