Отличные ответы выше. Я хочу только добавить, что внутри области вашей функции вы можете присвоить значение этой переменной переменной let self = this;
, а затем внутри обратного вызова просто обратиться к данным типа self.data
.
Ваш код :
function MyConstructor(data, transport) {
this.data = data;
let self = this; //ADD THIS LINE
transport.on('data', function () {
alert(self.data); //USE IT LIKE THIS
});
}
// Mock transport object
var transport = {
on: function(event, callback) {
setTimeout(callback, 1000);
}
};
// called as
var obj = new MyConstructor('foo', transport);
Вам нужно разрешить менее безопасные приложения, вы можете сделать это, нажав ссылку ниже
https://www.google.com/settings/security/lesssecureapps
также попробуйте этот
https://accounts.google.com/DisplayUnlockCaptcha
, если все еще не работает, попробуйте изменить пароль для gmail
Вам нужно установить Разрешить менее безопасные приложения: Включить, войти в Google, используя нужную учетную запись, и перейти на страницу безопасности и установить Allow less secure apps
в положение ON.