_.bindAllについてのメモ

_.bindAllは、第一引数に指定したオブジェクトAがあった時、Aがもつ関数プロパティのthisをAにしてしまう関数です。

hoge = {
	val: "hoge",
	print: function() { console.log(this.val); },
	set: function(v) { this.val = v; },
	get: function() { return this.val; }
};

hoge.print(); // hoge
print = hoge.print; set = hoge.set; get = hoge.get;
print(); // undefined (thisがwindowなので)
_.bindAll(hoge, "print", "set"); // 指定のメソッドについてbind
print = hoge.print; set = hoge.set; get = hoge.get;
print(); // hoge
set("piyo");
print(); // piyo
console.log(get()); // undefined (getはまだbindされていない)
_.bindAll(hoge); // メソッドであるプロパティ全てをbind
print = hoge.print; set = hoge.set; get = hoge.get;
console.log(get()); // piyo