基本概念
借用构造函数(constructor stealing)进行继承的基本思想就是:在子类型构造函数的内部调用超类型构造函数。
那么,如何调用?函数只不过是在特定环境中执行代码的对象,因此通过使用apply()和call()方法也可以在(将来)新创建的对象上执行构造函数。
示例代码
function SuperType() {
this.number = [1, 2, 3];
}
function SubType() {
SuperType.call(this);
}
var instance1 = new SubType();
instance1.number.push(4);
instance1.number; // "1,2,3,4"
var instance2 = new SubType();
instance2.number; // "1,2,3"
构造函数继承的优势:可以传递参数
function SuperType(name) {
this.name = name;
}
function SubType() {
Super.call(this, "MirrorAvatar");
this.age = 3;
}
var instance = new SuperType();
instance.name; //MirrorAvatar
instance.age; //3
借用构造函数继承的问题
- 方法都在构造函数中定义,函数无复用性;
- 在超类型的原型中定义的方法,对子类型而言也是不可见的,结果所有类型都只能使用构造函数模式。
以上,构造函数的技术很少单独使用。
相关推荐
02_借用构造函数继承.html
借用构造函数继承 在解决原型中包含引用类型值所带来问题的过程中,开发人员开始使用一种叫做借用构造函数(constructor stealing)的技术(有时候也叫做伪造对象或经典继承)。这种技术的基本思想相当简单,即在...
这篇文章主要介绍了JavaScript如何借用构造函数继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 借用构造函数继承是在子类型构造函数的内部调用超类型构造...
借用构造函数继承又被称为伪造对象继承或经典继承。这种方法在子类型构造函数的内部调用超类型构造函数。通过使用apply()和call()方法,可以在将来新创建的对象上执行构造函数,从而实现继承。 优点: - 可以向超...
apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args–>...
本文将探讨JavaScript中对象的创建方式以及六种常见的继承模式,包括原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承以及寄生组合式继承。 首先,让我们从对象的创建开始谈起。在JavaScript中创建...
本文将详细讲解JavaScript中的几种常见的函数继承方式,包括原型链继承、借用构造函数继承(对象伪装)、组合继承、寄生组合继承以及ES6引入的class继承。 **一、前言** 函数继承是JavaScript中实现对象之间属性和...
// 借用构造函数继承属性成员 Person.call(this, name, age); } var s1 = new Student('张三', 18); console.log(s1.type, s1.name, s1.age); // 输出: human 张三 18 ``` **优点**:解决了属性继承且避免了值...
借用构造函数继承(也称为经典继承),是在子类构造函数的内部调用父类构造函数,通常使用`call()`或`apply()`方法。这种方式可以让子类实例拥有父类的属性,但不能继承父类的方法。 **2. 实现步骤** - 定义父类...
为解决原型中包含引用类型值所带来的问题, 我们使用一种叫做 借用构造函数(constructor stealing)的技术(又叫伪造对象或经典继承)。 这种技术的基本思想:在子类构造函数内部调用超类型构造函数。 通过使用...
- **借用构造函数继承**:在子类型构造函数中调用父类型构造函数,复制父类型实例的属性。 - **组合继承**:结合原型链和构造函数继承,但会出现两次调用父类型构造函数的问题。 - **原型式继承**:使用`Object....
2. **借用构造函数继承** - 在子类构造函数中调用父类构造函数。 3. **原型+构造函数组合继承** - 结合了原型链和构造函数继承,但可能导致方法被多次创建。 4. **寄生式继承** - 创建父类的副本,然后修改副本并...
借用构造函数继承是指在子类构造函数内部使用call或apply方法调用父类构造函数,从而达到继承父类属性的目的。这种方式可以向父类构造函数传参,且每个子类实例拥有自己的父类属性副本,互不影响。 1. **无参数借用...
使用构造函数创建对象原型小结原型链js中继承的几种方法原型链继承借用构造函数继承组合继承原型式继承寄生式继承(常用)寄生组合式继承使用构造函数创建对象var p
在这个"js代码-借用构造函数demo"中,我们将探讨JavaScript中的一个重要概念——构造函数的借用,也称为原型链继承或原型式继承。这个概念是理解JavaScript对象模型和面向对象编程的关键。 在JavaScript中,每个...