首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改ES5 -> ES8 JS函数语法?

如何更改ES5 -> ES8 JS函数语法?
EN

Stack Overflow用户
提问于 2018-02-02 17:38:18
回答 3查看 160关注 0票数 0

我试图更改这个(工作良好)函数,以便能够使用节点+ ES8 (没有关键字函数)运行,但是我想不出如何做到这一点。

代码语言:javascript
复制
window.getElementsByXPath = function getElementsByXPath(expression, scope) {
    scope = scope || document;
    var nodes = [];
    var a = document.evaluate(expression, scope, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (var i = 0; i < a.snapshotLength; i++) {
        nodes.push(a.snapshotItem(i));
    }
    return nodes;
};

(这是一个来源于node.js的文件,用于傀儡+铬无头)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-02 17:40:16

只需删除关键字function和函数名如下:

代码语言:javascript
复制
window.getElementsByXPath =  (expression, scope) => {
  scope = scope || document;
  var nodes = [];
  var a = document.evaluate(expression, scope, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
  for (var i = 0; i < a.snapshotLength; i++) {
    nodes.push(a.snapshotItem(i));
  }
  return nodes;
};

这个叫做:箭头函数。

资源

票数 1
EN

Stack Overflow用户

发布于 2018-02-02 17:40:55

使用箭头函数语法:var foo = (param) => { // Do stuff }

使用您的代码:

代码语言:javascript
复制
window.getElementsByXPath = (expression, scope) => {
    scope = scope || document;
    var nodes = [];
    var a = document.evaluate(expression, scope, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (var i = 0; i < a.snapshotLength; i++) {
        nodes.push(a.snapshotItem(i));
    }
    return nodes;
};
票数 1
EN

Stack Overflow用户

发布于 2018-02-02 18:11:19

如果您想一路走下去,您可以使用迭代器类型而不是快照,立即执行生成器,并使用扩展和短箭头表达式语法。

代码语言:javascript
复制
window.getElementsByXPath = (expression, scope) =>
    [...(function * (iter, node) {
        while (node = iter.iterateNext()) yield node;
    })(document.evaluate(expression, scope || document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null))];

但这并不能使它更易读懂.

function关键字将重新出现,因为生成器目前无法用箭头语法编写。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48588087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档