Code from Fun Fun Function YouTube episode: The 'new' keyword - Object Creation in JavaScript P3
function Person(saying) { | |
this.saying = saying | |
} | |
Person.prototype.talk = function() { | |
console.log('I say:', this.saying) | |
} | |
function spawn(constructor) { | |
var obj = {} | |
Object.setPrototypeOf(obj, constructor.prototype) | |
var argsArray = Array.prototype.slice.apply(arguments) | |
return constructor.apply(obj, argsArray.slice(1)) || obj | |
} | |
var crockford = spawn(Person, 'SEMICOLANS!!!1one1') | |
crockford.talk() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
gumatias commentedJun 7, 2018
@mpj wouldn't it make sense to call
var argsArray = Array.prototype.slice.apply(arguments, [1])
instead since it binds and executes? I might be missing an important lesson here.