在Google Javascript Coding Guidelines ,它说我们不应该使用多级原型(prototype)层次结构,因为“这些层次结构比它们第一次出现时要难得多!”。其实我没看懂什么意思。在哪里可以找到一个很好的例子来解释它的用法并说明它的坏影响?
最佳答案
这是一个两级继承的例子:
// 1. level constructor
var Dog = function ( name ) {
this.name = name;
};
Dog.prototype.bark = function () { /* ... */ };
// 2. level constructor
var TrainedDog = function ( name, level ) {
Dog.apply( this, arguments ); // calling the super constructor
this.level = level;
};
// set up two-level inheritance
TrainedDog.prototype = Object.create( Dog.prototype );
TrainedDog.prototype.constructor = TrainedDog;
TrainedDog.prototype.rollOver = function () { /* ... */ };
// instances
var dog1 = new Dog( 'Rex' );
var dog2 = new TrainedDog( 'Rock', 3 );
这里,dog1
从 Dog
原型(prototype)继承了 bark
方法,dog2
继承了该方法(来自 Dog
原型(prototype))和来自 TrainedDog
原型(prototype)的 rollOver
方法。
关于Javascript:什么是多级原型(prototype)层次结构以及为什么我们应该避免它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8859550/