微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

获取对运算符后面的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.jb51.cc/js/159452.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐