构造函数的继承

Posted neilniu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构造函数的继承相关的知识,希望对你有一定的参考价值。

 

// 构造函数
function Animal() {
this.species = "动物";
}
function Cat(name, color) {
this.name = name;
   this.color = color;
}

// 1, 使用call或者apply方法,将父对象的构造函数绑定在子对象上,即在子对象构造函数中加一行
// function Cat(name, color) {
// Animal.apply(this, arguments);
// this.name = name;
// this.color = color;
// }
// var cat1 = new Cat(‘大猫‘,‘黄色‘);
// console.log(cat1);


// 2. 第二种 prototype属性
// 第一行,将prototype对象指向一个Animal的实例
// Cat.prototype = new Animal();
// 第二行,constructor属性,指向它的构造函数,
// 如果没有Cat.prototype = new Animal(),Cat.prototype.constructor指向Cat
// 现在指向Cat.prototype.constructor指向Animal
// Cat.prototype.constructor = Cat;
 
// var cat1 = new Cat(‘大毛‘,‘黄色‘);
// console.log(cat1);

// 3.直接继承prototype
// function Animal() {
 
// }
// Animal.prototype.species = "动物";
// Cat.prototype = Animal.prototype;
// Cat.prototype.constructor = Cat;
// var cat1 = new Cat(‘大毛‘,‘黄色‘);
// console.log(cat1.species);

// 5. 拷贝继承
// function Animal() {}
// Animal.prototype.species = "动物";
// function extend(Child, Parent) {
// var p = Parent.prototype;
// var c = Child.prototype;
// for(var i in p) {
// c[i] = p[i];
// }
// c.uber = p;
// }
// extend(Cat,Animal);
// var cat1 = new Cat(‘大毛‘,‘黄色‘);
// console.log(cat1);

 摘自阮老师的博客:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html

以上是关于构造函数的继承的主要内容,如果未能解决你的问题,请参考以下文章

继承默认构造函数,矛盾吗?

[C++11 类的改进] --- 继承构造函数和委托构造函数

[C++11 类的改进] --- 继承构造函数和委托构造函数

在构造函数继承中使用默认构造函数

子类继承父类的构造函数(方法)吗?

C++11 继承构造函数和委托构造函数