[3.6.3]data of $root cann't be modified via ajax.callback function

A weird questions beset me!
There is a phenomenon flickering in and out.

I defined data for App as root data

  user: 'Guest',

In other page(route via router component) i can modified the data via

root.user = {
user: ‘User 1’,

or via

root.user.user=‘User 1’;

if i called app.request for ajax, i can modified the data via

success: function(){ root.user.user=‘User 1’;}

Buuuuut i can not modified the data via

success: function(){
root.user = { user:‘User 1’ };


I made some test.
Result was

user: ‘guest’

When i modified $root.data via

var self = this;
var d = this.$root;

success: function(){
d.user = { user:‘User 1’ };
console.log(d.user);// {user: ‘Guest’}
console.log(self.$root.user);// {user: ‘User 1’}

the question appear clearly.
but i still do not understand,Why?
Bc i still don’t understand type proxy?

$root is so called proxy JS object that dynamically combines app’s root data and methods. So to modify and work with it correctly, you need to always reference it as this.$root. Or you can just modify the data directly like this.$app.data.user = ...

thanks. even i don‘t see clearly about proxy obj.