- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- JavaScript/文法/関数/call()とapply() へ行く。
- 1 (2009-11-15 (日) 19:41:28)
- 2 (2009-11-15 (日) 20:05:47)
call()とapply()
function func(v) { alert(v + this.name); } func('hello, ');
↑ではthis.nameが参照出来ないが、
var func = function (v) {alert(v + this.name);}; func.call({name:'taro'}, 'hello. ');
↑のようにcall()を使うと任意のオブジェクト({name:'taro'})に対して関数(func())を実行できる。この際、オブジェクトには何の変更もない。これを別の方法で実装すると、
var obj = {name:'taro'}; obj.func = function () {alert(v + this.name);}; obj.func('hello. '); delete obj.func;
となる。