-3

この関数を変更しない場合:

function operate(operator, operand1, operand2) {
    return operator(operand1, operand2);
}

私は書きたい:

var x = operator(add, operate(add, 2, 3), operate(multiply, 4, 5));

x の値として 25 を取得します。これどうやってするの?

4

3 に答える 3

3

タイプミスがあります。次の場所にoperatorある必要がありますoperate

var x = operate(add, operate(add, 2, 3), operate(multiply, 4, 5));

次に、それぞれが 2 つの引数を取り、適切な操作を実行して 2 つの引数の結果を返す 2 つの関数を定義する必要がありますaddmultiply

于 2012-12-08T04:31:53.907 に答える
2

その理由operatorは、関数であることが期待されていますが、実行には次のように定義する必要がaddあります。multiply

function add(x,y) {
    return x + y;
}

function multiply(x,y) {
    return x * y;
}

また、タイプミスがあると思います:

ReferenceError: operator is not defined

してただろう:

var x = operate(add, operate(add, 2, 3), operate(multiply, 4, 5));

これにより が得られx = 25ます。

于 2012-12-08T04:32:31.847 に答える
0

ここでは、「add」と「multiply」を使用している演算子で名前を付けた2つの関数を作成するだけで、javasciptが引数を渡す関数を許可して問題を解決できます

function add(x,y) {
    return x + y;
}

function multiply(x,y) {
    return x * y;
}

PS:ここにタイプミスがあります「var x = operator(add、operate(add、2、3)、operate(multiply、4、5));」オペレーターはこちらで操作します。

于 2012-12-08T04:39:45.090 に答える