What exactly is the 'constructor' in the following? That is, what does the Object.create
do vs. calling the constructor? Does the constructor actually execute the function name, or what magic happens there?
function greet(name) {
this.print = function print() {console.log('hey!', name)};
}
// why's it required to create an object of the funcion.prototype and again initialize the constructor?
let y = Object.create(greet.prototype);
y.constructor('Bob');
y.print();
// this part makes sense to me.
let z = new greet('Bob');
z.print();
Also, if I were to put the print()
method outside the function, how would I access the name? For example:
function greet(name) {
this.name = name;
}
greet.prototype.print = () => {console.log('hey!', this.name)};
// 'hey! undefined'