我正在阅读有关
mixin pattern in javascript的内容,我遇到了一段我不理解的代码:
SuperHero.prototype = Object.create( Person.prototype );
原始代码中实际上存在拼写错误(大写字母H).如果我将它包装下来就可以了.但是,如果我实际删除该行,一切似乎都是一样的.
这是完整的代码:
var Person = function( firstName,lastName ){ this.firstName = firstName; this.lastName = lastName; this.gender = "male"; }; // a new instance of Person can then easily be created as follows: var clark = new Person( "Clark","Kent" ); // Define a subclass constructor for for "Superhero": var Superhero = function( firstName,lastName,powers ){ // Invoke the superclass constructor on the new object // then use .call() to invoke the constructor as a method of // the object to be initialized. Person.call( this,firstName,lastName ); // Finally,store their powers,a new array of traits not found in a normal "Person" this.powers = powers; }; SuperHero.prototype = Object.create( Person.prototype ); var superman = new Superhero( "Clark","Kent",["flight","heat-vision"] ); console.log( superman ); // Outputs Person attributes as well as powers
什么SuperHero.prototype = Object.create(Person.prototype);做?