是否可以在javascript中添加一些新语法?

Haf*_*fiz 1 javascript python operator-overloading

是否可以在javascript中添加一些新语法?就像我希望它有一个类似的synatx:

mul>10>20结果200或者说mul(2)(3)结果为6?有可能的?我在某个地方看到了类似的问题吗?所以我不确定它是否可能?如果不是在JS中,它可以在其他语言中使用,如C,Java,Python吗?我的理解是,所有这些语言只能为新对象添加一些功能,甚至那些新对象只能拥有语言本身已有的运算符和语法?我是正确的还是可以为这些语言添加新语法?

mon*_*ers 12

回答你的更广泛的问题是写入您正在使用的语言,意为宗旨,以解决您的问题,这是提供给您的工具.

然而,你给出的第二个例子实际上已经是一个相当普遍的模式,称为currying.您可以使用以下内容扩展Javascript以实现此目的:

Function.prototype.curry = function() {
    var fn = this, args = Array.prototype.slice.call(arguments);
    return function() {
      return fn.apply(this, args.concat(
        Array.prototype.slice.call(arguments)));
    };
  };
Run Code Online (Sandbox Code Playgroud)

假设mul(a, b)是:

function mul(a, b) {
    return a * b;
}
Run Code Online (Sandbox Code Playgroud)

您可以使用 mul.curry(2)(3)

这是一个小提琴

有关此设计模式的更深入解释,请查看http://ejohn.org/blog/partial-functions-in-javascript/