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

@gumatias gumatias 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.