Вам как раз и не нужно вызывать функцию через `call` в вашем примере. Функция вызвана через property accessor, всегда вызывается в контексте обьекта к которому доступаемся (если конечно функция не была "пробиндина" к другому контексту).
+ лучше методы класса обьявлять через прототип, вот как это должно выглядеть
function App(){
// `data` тоже в прототип можно вынести
}
App.prototype = {
data: 'Привет ',
method: function(name){
alert(this.data + ', ' + name + '!');
}
};
var app = new App();
app.method('Маша');