我想在变量中存储“+”运算符。
<head>
<script type="text/javascript">
var m= function(a,b){
return a-b
}
var jj= 10 m 10;
alert(jj)
</script>
</head>
答案 0 :(得分:12)
避免使用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]
存储在变量中。
答案 1 :(得分:0)
您无法像要求的那样在JavaScript中存储运算符。您可以将函数存储到变量中,然后使用它。
var plus = function(a, b) {
return a + b;
}
很抱歉,但JavaScript不允许此运算符重载。
答案 2 :(得分:0)
你做不到。
有一些方法可以通过播放可用的钩子来使用javascript来实现自定义版本的运算符,但是没有办法将m
功能转换为+
。
@dystroy有一个很好的例子,可以使用可用的钩子来实现自定义版本的运算符,但请注意,它仍然只是使用对象来访问有效的函数的经典示例。