У меня есть следующий код 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?