【基础疑惑】为什么要在方法的最后加上逗号后再写上参数?

cyaolong
  • 13

疑问在于最后一行,为啥要加上前面一堆参数?百度了好久没找到答案,因为不清楚这种叫什么术语。
代码如下:

    for(let i=1;i<61;i++){
        const info_sel = '#ajax_loading_con > li:nth-child(' + i + ')';
        const name_sel = '#ajax_loading_con > li:nth-child(' + i + ') > a.info';
        const icon_sel = '#ajax_loading_con > li:nth-child(' + i + ') > a.info > img';
        const href_sel = '#ajax_loading_con > li:nth-child(' + i + ') > a.info';

        //MapReduce方式
        const games = await page.evaluate((gInfo, gName, gIcon, gHref) => {
            return Array.prototype.slice.apply(document.querySelectorAll(gInfo))
                .map(document => {
                    const gameName = document.querySelector(gName).title;
                    const gameIcon = document.querySelector(gIcon).src;
                    const gameHref = document.querySelector(gHref).href;
                    return {
                        gameName,
                        gameIcon,
                        gameHref,
                    };
                })
        }, info_sel, name_sel, icon_sel, href_sel);
回复
阅读 1.1k
1 个回答
✓ 已被采纳

整理一下你可能就看明白了:


let mapper = (gInfo, gName, gIcon, gHref) => {
    return Array.prototype.slice.apply(document.querySelectorAll(gInfo))
        .map(document => {
            const gameName = document.querySelector(gName).title;
            const gameIcon = document.querySelector(gIcon).src;
            const gameHref = document.querySelector(gHref).href;
            return {
                gameName,
                gameIcon,
                gameHref,
            };
        })
};

const games = await page.evaluate(mapper, info_sel, name_sel, icon_sel, href_sel);

javascript 里支持接收一个函数作为参数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏