Skip to content

Instantly share code, notes, and snippets.

@fanyer
Created February 2, 2017 23:34
Show Gist options
  • Save fanyer/5e1cca67257746f0eeb5d6f3fa500f88 to your computer and use it in GitHub Desktop.
Save fanyer/5e1cca67257746f0eeb5d6f3fa500f88 to your computer and use it in GitHub Desktop.
function Rocker(name){
this.name = name;
};
Rocker.prototype.getName = function(){
return this.name;
}
//https://rockjins.github.io/2017/01/18/new-object/
var createObject = function(){
var obj = new Object(), //(1)
Constructor = [].shift.call(arguments); //(2)
obj.__proto__ = Constructor.prototype; //(3)
var ret = Constructor.apply(obj, arguments); //(4)
return typeof ret === 'object' ? ret : obj; //(5)
};
var shock = createObject(Rocker, 'Shock');
console.log(shock.name); //Shock
console.log(shock.getName()); //Shock
console.log(Object.getPrototypeOf(shock) === Rocker.prototype); //true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment