I am new to Vue. I saw a demo like this:

```
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
  {{fullname}}
 </div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script>
  var app = new Vue({
    el:'#app',
    data:{
      firstName: 'first',
      lastName: 'last'
    },
    computed: {
      fullname: {
        get: function(){
          console.log('getter');
          return this.firstName + this.lastName;
        },
        set: function (newValue) {
          console.log('setter：' + newValue);
          let names = newValue.split(' ')
          this.firstName = names[0]
          this.lastName = names[names.length - 1]
        }
      }
    }
  })

</script>
</body>
</html>

```

As the code shows, there are two sub-function get and set. In my view, the this variables in these two functions should not be same(because they belongs to different scopes). But it works well. Any idea?