您好,欢迎访问一九零五行业门户网

推荐JavaScript实现继承的最佳方式

本章是介绍了实用call方法结合原型链方法来实现javascript继承的最佳方式,非常的实用,有需要的小伙伴可以参考下。
实现javascript继承的最简单的方式是call方法(或者apply方法)及原型链方法,但这两种方法都有缺陷,而其混合体就是很好的继承实现方式。下面举例说明:
function animal(age){ this.age = age;}animal.prototype.sayage = function(){ window.alert("my age is "+this.age+"!");};function dog(age,name){ animal.call(this,age); this.name = name;}dog.prototype = new animal();dog.prototype.sayname = function(){ window.alert("i am a "+this.name+"!");};var dog = new dog(15,"dog");dog.sayname();dog.sayage();
对于类animal来说,它有一个字段属性age及函数属性sayage,sayage方法的定义采用的是原型方式。dog类要继承animal,其字段属性除了age外还有name,通过animal.call(this,age);可以实现dog继承animal的字段属性age并将其初始化了。call方法的第一个参数为继承的类的this指针,第二个参数为animal类的构造函数的参数。实际上,只是通过call方法就可以实现继承,但唯一的要求是父类的函数属性要在构造函数中定义,这对于这里的函数属性使用原型方式定义来说就不适合了(采用原型方式定义函数属性比在构造函数内定义更直观一些)。要想继承animal的原型方式定义的函数属性,需要的语句就是“dog.prototype = new animal();”。而dog类中的sayname()函数则是其自身的函数属性了。
除了这个最经典的实现继承的方式外,目前还有一些免费的库可供使用。但想到形形色色的库,头就大了,有时间有必要时再研究吧!
其它类似信息

推荐信息