dogFactory() - why is code not accepted?

This is the link to the challenge

Below is my code
It throws no error - but it does not accept the code.
Where’s the problem?

function dogFactory(name, breed, weight){
  return {
    _name,
    _breed,
    _weight,
    get name(){
      return this._name;
    },
    get breed(){
      return this._breed;
    },
    get weight(){
      return this._weight;
    },
    set name(name){
      return this._name = name;
    },
    set breed(value){
      return this._breed = value;
    },
    set weight(value){
      return this._weight = value;
    },
  };
}

You’re using destructured assignment but the variables do not match the parameters.

Thank you
I fixed it by building the object properly with key-value pairs

_name: name,
_breed: breed,
_weight: weight,

but I am not entirely clear why did the original way did not assign the arguments name etc to the keys _name etc

Because the interpreter is not set up to populate anything but exact matches to the parameters. _name and name may have obvious similarities to a human, but to a machine they are worlds apart.