5

我想将“+”运算符存储在变量中。

<head>
<script type="text/javascript">
var m= function(a,b){
return a-b
}
var jj= 10 m 10;
alert(jj)
</script>
</head>
4

3 回答 3

20

避免使用eval,我建议使用函数映射:

var operators = {
   '+': function(a, b){ return a+b},
   '-': function(a, b){ return a-b}
}

然后你可以使用

var key = '+';
var c = operators[key](3, 5);

请注意,您也可以存储operators[key]在变量中。

于 2013-02-01T19:33:37.030 回答
0

您不能按照您的要求将运算符存储在 JavaScript 中。您可以将函数存储到变量中并改用它。

var plus = function(a, b) { 
    return a + b;
}

抱歉,JavaScript 不允许此运算符重载。

于 2013-02-01T19:36:16.203 回答
0

你不能。

有一些方法可以通过使用可用的钩子来使用 javascript 来实现运算符的自定义版本,但没有可能的方法将m功能转换为+.

@dystroy 有一个很好的例子,它使用可用的钩子来实现自定义版本的运算符,但请注意,它仍然只是使用对象访问执行某些工作的函数的经典示例。

于 2013-02-01T19:39:13.030 回答