this в классах
Добрый день. Вопрос следующий. Допустим есть некий класс, который работает с бд.
function SomeClass(a){
this.a=a;
}
SomeClass.prototype.someDBAction = function(){
connection.query('some sql', function (sqlErr, results){
console.log(this.a);
});
};
Есть ли способ в калбеке запроса к БД получить доступ к переменной класса. Речь о console.log(this.a); - this в контексте функции в данном случае. |
Не уверен, что в NodeJS так можно, но можете попробовать:
function SomeClass(a){
this.a=a;
}
SomeClass.prototype.someDBAction = function(){
var instance=this;
connection.query('some sql', function (sqlErr, results){
console.log(instance.a);
});
};
|
Внезапна.
Вообще-то, стрелочные функции (не имеют собственного this) как раз для этого и придумали. (а вовсе не для того, чтобы меньше букав писать) Тырц:
function SomeClass(a){
this.a=a;
}
SomeClass.prototype.someDBAction = function() {
connection.query('some sql', (sqlErr, results) => {
console.log(this.a);
});
};
|
Nexus,
Да, так работает. Audaxviator, И да, так тоже работает, спасибо, только от такого синтаксиса у меня WebStorm сходит с ума, это нужно дополнительно поддержку синтаксиса ES6 в настройках включать? Все, разобрался. Если кому надо Settings -> Languages and Frameworks -> javascript: JS language version |
| Часовой пояс GMT +3, время: 11:19. |