人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScriptについてです。
Function.prototype.applyメソッドをJavaScriptで実装してください。

●質問者: b-stat
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● lang_and_engine

やってみました・・・。


JavaScriptのFunction.prototype.applyを,やさしいピュアJavaScriptだけで実装してみよう (call/applyの仕組みを理解するためのオレオレ実装)
http://d.hatena.ne.jp/language_and_engineering/20150430/p1


a-kuma3さんのコメント
おっと被った <tt>X-|</tt> やっぱり、eval 使うしかないですよね。

lang_and_engineさんのコメント
そうですよね。いやあよかった,evalに手を出してしまったことで,ひどく良心が痛み,冷や汗をかいていたのですが,他の回答者さんもevalを使っていたので,心に責めを負わずに済みました

2 ● a-kuma3

こんな感じでしょうか。

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 を実装しなさい、だったら、もうちょっとスッキリと書けそうですが。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ