В вашем примере разницы нет и 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".