1

私はJavascriptで高階関数を試していて、次のようなものを書きました:

function hof (setter) {
    setter("not test");
}

function hof2 (setter) {
    setter.call(window.jQuery, "not test 2");
}

var span = $("#myTest").text;
hof(span);
hof2(span);

jsFiddle のバージョンは次のとおりです: http://jsfiddle.net/6mcYt/

ただし、どちらの関数もエラーをスローします。jQueryセッター関数を高次関数に渡す最良の方法は何ですか?

4

2 に答える 2

2

あなたがやりたいことは(100%確信が持てませんが)、このようにすべきだと思います。

function hof ($el) {
    $.fn.text.call($el, 'test1')
}

var span = $("#myTest");
hof(span);

ここにフィドルがありますhttp://jsfiddle.net/6mcYt/2/

もう 1 つのオプションは、最初にテキスト メソッドをコンテキストにバインドすることです。

function hof2 (setter) {
    setter("not test 2");
}
var spanFn = $.proxy($.fn.text, $("#myTest"));
hof2(spanFn);

フィドル

于 2013-09-25T17:29:25.120 に答える