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

前端之家收集整理的这篇文章主要介绍了获取对运算符后面的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语言中的核心函数,就像它们是用户定义的一样?

解决方法

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

猜你在找的JavaScript相关文章