获取对运算符后面的JavaScript Function对象的引用

这是一个lisp过程,简单地将’a’添加到’b’的绝对值:
(define (a-plus-abs-b a b)
  ((if (> b 0) + -) a b))

我认为这很漂亮,我试图找到用JavaScript编写这个的最好方法.但是我的JavaScript代码不漂亮:

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

var minus = function(a,b) {
    return a - b;
};

var aPlusAbsB = function(a,b) {
    return (b > 0 ? plus : minus)(a,b);
}

主要的问题是我不能使用和 – 符号作为他们真正代表的函数的引用,因为我可以使用lisp.任何人都可以想出一种更优雅的方式做这样的事情,或者我是否达到语言界限?

显然,我可以这样做:

var aPlusAbsB = function(a,b) {
    return a + Math.abs(b);
}

,但这更像是一个思想实验,而不是一个实用的问题.

有没有什么方法可以引用JavaScript语言中的核心函数,就像它们是用户定义的一样?

解决方法

这是一个非常酷的想法 – 对于评估数学表达式非常有用,但是你根本无法将一个运算符(或它背后的逻辑)设置为一个变量.对不起:-)

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...