Function.prototype.applyメソッドをJavaScriptで実装してください。
やってみました・・・。
JavaScriptのFunction.prototype.applyを,やさしいピュアJavaScriptだけで実装してみよう (call/applyの仕組みを理解するためのオレオレ実装)
http://d.hatena.ne.jp/language_and_engineering/20150430/p1
こんな感じでしょうか。
Function.prototype.apply = function() { var f = this; var o = arguments[0]; var a = arguments[1]; var s = "var ret = f.call(o,"; for (var i = 0 ; i < a.length ; ++i) { s += "a[" + i + "]"; if (i != a.length - 1) { s += ", "; } } s += ");" eval(s); return ret; }
Function#call メソッドを使ってます。
Function.prototype.call を実装しなさい、だったら、もうちょっとスッキリと書けそうですが。
おっと被った X-|
2015/04/30 14:20:56やっぱり、eval 使うしかないですよね。
そうですよね。いやあよかった,evalに手を出してしまったことで,ひどく良心が痛み,冷や汗をかいていたのですが,他の回答者さんもevalを使っていたので,心に責めを負わずに済みました
2015/04/30 14:40:42