所有的Function类的对象都具有这个叫call()的方法,它接受一个this操作符的宿主环境对象,还接受一个参数列表,注意不是参数数组。
这篇文章使用call()方法的第一个参数的特点来实现继承。
// 基类
function Person(name, sex)
{
this.name = name;
this.sex = sex;
this.get_nama = function(){
return this.name;
};
this.get_sex = function(){
return this.sex;
};
}
var man1 = new Person('路人甲', '男');
document.write(man1.get_nama() + ',性别:' + man1.get_sex() + '<br>');
// 子类
function PHPer(name, sex, title)
{
// 改变Person对象中this的宿主环境
Person.call(this, name, sex);
this.title = title;
this.get_title = function(){
return this.title;
};
}
var man2 = new PHPer('胡子哥', '女', 'php研发工程师');
document.write(man2.get_nama() + ',性别:' + man2.get_sex() + ',职称:' + man2.get_title());
分享到:
相关推荐
在本话题中,我们将深入探讨JavaScript中的类继承,并特别关注`this.callParent`这个方法,它是如何被用来调用超类方法的。 首先,让我们了解JavaScript中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...
JavaScript中call与apply方法
构造函数继承主要通过`call()`或`apply()`方法实现,将父类构造函数的上下文(`this`关键字)指向子类实例。这样,父类构造函数可以初始化子类实例的属性。然而,这种方式并不传递方法,只共享了实例属性,没有真正...
javascript中如何实现封装,继承和多态
JavaScript中的call、apply、bind方法都是改变函数执行上下文的内置方法。这些方法的核心功能是改变函数运行时的this指向,即决定函数执行时应当将哪个对象视为其主体。理解这些方法的机制对于理解JavaScript中的...
比如,可以在子类的构造函数中使用 call 方法调用父类的构造函数,从而实现父类方法和属性的继承。 4. 利用 call 方法,开发者可以让一个对象去调用另一个对象的方法,这在编写 JavaScript 库或者框架时非常有用。 ...
虽然JavaScript不直接支持多重继承,但我们可以通过连续使用`call`方法来实现类似的效果。 **示例:** ```javascript function Class10() { this.showSub = function(a, b) { console.log(a - b); }; } ...
在Java或C++等语言中,继承通常只需要一个关键字,如`extends`,但在JavaScript中,实现继承需要采用一系列技术。 JavaScript使用的是原型式继承,这是它与其他语言的一大区别。原型(Prototype)是JavaScript实现...
此外,JavaScript还提供了其他实现继承的方式,如使用`__proto__`直接修改原型,或者使用ES6中的`class`语法糖,这些方法在不同场景下各有优势。总的来说,理解JavaScript中的构造函数和原型是掌握继承的关键,而...
它使用原型链实现方法的继承,同时又利用构造函数来继承父对象的属性。组合继承避免了子对象共享父对象引用类型属性的问题,同时也继承了父对象原型链上的方法。其主要缺点是调用了两次父构造函数,一次是在创建子...
在深入研究 JavaScript 继承时,还需要了解其他相关概念,如 `Object.create()`、`instanceof`、`call()`、`apply()` 和 `bind()` 等方法,它们在继承实现中起到关键作用。同时,ES6 中引入的 `class` 关键字和 `...
2. 多重继承:通过使用多次call,可以在子类中继承多个父类的属性和方法,例如`Class2`的构造函数中使用了两个call调用,实现了多重继承。 3. 函数借用:一个对象可以借用另一个对象的方法。如第一个示例中,`add`...
总的来说,`call`和`apply`是JavaScript中实现动态上下文和继承的重要工具,它们提供了灵活的方式来操作函数调用,尤其是在处理对象和类的结构时。尽管JavaScript有多种实现继承的方式,如原型链、类式继承等,但`...
在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...
通过本文,我们可以更好地理解 JavaScript 中的继承机制,并合理地使用它来实现代码复用和提高编程效率。 知识点: 1. JavaScript 中的继承机制是通过 prototypeChain 来实现的。 2. 继承机制可以实现代码复用和...
本资料集合关注的是JavaScript中的继承派生以及与之相关的`apply`和`call`方法。 **继承**是面向对象编程的关键概念,允许一个对象(子类)继承另一个对象(父类)的属性和方法。在JavaScript中,由于它没有内置的...
在这个主题中,“javascript控件开发之继承关系”主要探讨的是如何利用JavaScript的面向对象特性来构建和组织控件的层次结构,以及如何通过继承来实现代码的复用和模块化。 在JavaScript中,继承是基于原型...
在JavaScript中,`call`和`apply`是两个非常重要的方法,它们都用于改变函数调用时的上下文(即`this`的值),并且可以灵活地传递参数。本篇文章将深入探讨这两个方法的用法、区别以及实际应用场景。 `call`方法...
JavaScript使用原型链来实现继承,每个对象都有一个`__proto__`属性,指向其构造函数的原型对象。原型对象又可以通过`__proto__`链接到另一个对象,形成一个链式结构。 ```javascript function Animal(name) { ...
**原理**: 在JavaScript中,原型链继承是一种实现继承的方式,它通过让子类的原型对象指向父类的一个实例来实现属性和方法的共享。 - **核心概念**: 每个函数都具有一个`prototype`属性,该属性默认是一个空的对象...