Skip to content

Instantly share code, notes, and snippets.

@mpj mpj/example.js
Created Sep 18, 2016

Embed
What would you like to do?
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()
@gumatias

This comment has been minimized.

Copy link

commented Jun 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.