В вашем примере разницы нет и this удобнее только тем, что при переименовании "arr" не придётся ещё две замены делать.
Хотя, если дальше вы используете наследование, то разница принципиальна. Например, создать новый объект, используя
arr как прототип:
var arr = {
"name" : "Stive",
"age" : 29,
"all" : function() { return this.name + " " + this.age; }
};
var b = Object.create(arr);
b.name = "Bill";
b.age = 39;
b.all();
С
this в
arr код для
b выполнится нормально и вернёт "Bill 39", а если в
arr вместо
this было прямое указание на
arr, то вернёт "Stive 29".