如何将箭头功能更改为常规功能?

时间:2019-08-02 06:53:56

标签: javascript arrow-functions

实际上,我正在使用其他人的代码,他们在一行中使用了箭头功能。我无法用常规功能替换它。

这是一行:

const R = (elem) => object(document.querySelector(elem));

我试图将其更改为:

const R = function(elem) {
  object(document.querySelector(elem))
};

但是没有好的结果。 :(

1 个答案:

答案 0 :(得分:2)

箭头函数具有缩短返回语法的内置方式:如果箭头函数仅返回一行代码,则可以省略语句括号和return关键字。这告诉箭头函数返回该语句。因此,您唯一要做的就是在不使用箭头功能的情况下显式添加return关键字。

const  R = function(elem){ return object(document.querySelector(elem)) };

如果尝试翻译使用this关键字的箭头功能,请小心。

更新:评论回复

在下面的代码中,使用括号来定义带有函数作为属性的对象。如果不使用括号,则需要大括号并在此箭头函数内返回,否则会出现SyntaxError。

const object = (elem) => ({
    css: function(attribute, value) {
        elem.style[attribute] = value;
        return object(elem);
    }
});

没有箭头功能,它将变为:

const object = function(elem) {
    return {
        css: function(attribute, value) {
            elem.style[attribute] = value;
            return object(elem);
        }
    };
}