JS: function vs arrow function
Имеется функция-конструктор DataSource, у которой задан вложенный объект data. Добавить данные в этот объект можно через функцию add, которая задана в прототипе. Если задавать функцию через ключевое слово function все работает как положено. Если эту же функцию задать как стрелочную (закомментированная строка в коде ниже), то программа падает с ошибкой Uncaught TypeError: Cannot set property 'a' of undefined. В чем причина?
function DataSource(){
this.data={}
}
DataSource.prototype.add=function(key,value){
this.data[key]=value
}
// DataSource.prototype.add=(key,value)=>this.data[key]=value
let f = new DataSource()
f.add('a','orderA')