У меня есть следующий код ES6 с использованием функции толстой стрелки:
var test = {
firstname: 'David',
fn: function() {
return ['one', 'two', 'tree'].map(() => this.firstname)
}
}
console.log(test.fn())
В соответствии с тем, как функции стрелок должны работать, я ожидаю, что this будет объектом test. ES6Fiddle, Traceur и Firefox производят ожидаемый результат, который равен ["David", "David", "David"].
При включении этих функций в Chrome с помощью chrome://flags/#enable-javascript-harmony, я получаю [undefined, undefined, undefined]. Если вы console.log(this), это показывает, что это объект окна, и вы получаете ошибку в строгом режиме. Является ли лексическая функция this для ES6 стрелки еще не реализована в V8?