For this Question: Complete the object <code>sayHiMixin</code> and the function <code>setPrototype</code>. You should implement the following:
<b>setPrototype</b>, this should set the prototype of a pre- defined class (not visible to you)<code>User</code> to <code> sayHiMixin</code>.
<b>sayHiMixin</b>, this must override the method <b>say</b> of an already defined object (not visible to you) <code>sayMixin</code>. This overridden method <b>say</b> should call the a <say> function of the already defined object <code>sayMixin</code>

<b>Note: </b> The method "say" in <code>sayMixin</code> takes a single parameter as string (which in this case the <code>name</code> attribute of the User class) and returns a number based on it.Name of the person as <b>string</b> s.You should return the same value as the <code>say</code> function in <b>sayMixin</b> returns.<pre>
// This is what you have to implement.

let sayHiMixin = {
 // this should inherit from sayMixin, and invoke it's "say" method somehow
 // for example, 
     const say = (name) => sayMixin.say(name);
  // name is a string, which will infact be the `name` attribute of a `User` object
};

// You must setPrototype of User class to that of sayHiMixin object.
function setPrototype(){
 // some code here
}

// Finally, when
// const obj = new User("Newton School")
// console.log(obj.say())  // this should print whatever sayHiMixin.say returns, which in this case is 39
</pre>, I have written this Solution Code: function setPrototype() {
    Object.assign(User.prototype, sayHiMixin);
}

let sayHiMixin = {
    __proto__: sayMixin, // (or we could use Object.setPrototypeOf to set the prototype here)

    say() {
        // call parent method
        return super.say(`${this.name}`); // (*)
    },
};

, In this Programming Language: JavaScript, Now tell me if this Code is compilable or not?