所有的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中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...
构造函数继承主要通过`call()`或`apply()`方法实现,将父类构造函数的上下文(`this`关键字)指向子类实例。这样,父类构造函数可以初始化子类实例的属性。然而,这种方式并不传递方法,只共享了实例属性,没有真正...
本篇文章将深入探讨JavaScript中实现继承的几种常见方式。 1. 原型链继承 JavaScript的原型(prototype)机制是实现继承的基础。每个函数都有一个prototype属性,这个属性指向一个对象,这个对象的属性和方法可以被...
虽然JavaScript不直接支持多重继承,但我们可以通过连续使用`call`方法来实现类似的效果。 **示例:** ```javascript function Class10() { this.showSub = function(a, b) { console.log(a - b); }; } ...
在Java或C++等语言中,继承通常只需要一个关键字,如`extends`,但在JavaScript中,实现继承需要采用一系列技术。 JavaScript使用的是原型式继承,这是它与其他语言的一大区别。原型(Prototype)是JavaScript实现...
浅析JavaScript实现基于原型对象的“继承” 本文旨在对JavaScript实现基于原型对象的“继承”进行深入分析,并与基于类的继承进行比较。通过对JavaScript的原型继承机制的介绍和实例分析,提出一个改进的“寄生组合...
它使用原型链实现方法的继承,同时又利用构造函数来继承父对象的属性。组合继承避免了子对象共享父对象引用类型属性的问题,同时也继承了父对象原型链上的方法。其主要缺点是调用了两次父构造函数,一次是在创建子...
在深入研究 JavaScript 继承时,还需要了解其他相关概念,如 `Object.create()`、`instanceof`、`call()`、`apply()` 和 `bind()` 等方法,它们在继承实现中起到关键作用。同时,ES6 中引入的 `class` 关键字和 `...
在本文中,我们将深入探讨JavaScript继承机制的实现方式,并对基于原型的继承、构造函数方式继承、组合继承、寄生式继承等继承机制进行了总结归纳和分析。 基于原型的继承 JavaScript是一门基于原型的语言,它不像...
2. 多重继承:通过使用多次call,可以在子类中继承多个父类的属性和方法,例如`Class2`的构造函数中使用了两个call调用,实现了多重继承。 3. 函数借用:一个对象可以借用另一个对象的方法。如第一个示例中,`add`...
总的来说,`call`和`apply`是JavaScript中实现动态上下文和继承的重要工具,它们提供了灵活的方式来操作函数调用,尤其是在处理对象和类的结构时。尽管JavaScript有多种实现继承的方式,如原型链、类式继承等,但`...
在这个主题中,“javascript控件开发之继承关系”主要探讨的是如何利用JavaScript的面向对象特性来构建和组织控件的层次结构,以及如何通过继承来实现代码的复用和模块化。 在JavaScript中,继承是基于原型...
JavaScript使用原型链来实现继承,每个对象都有一个`__proto__`属性,指向其构造函数的原型对象。原型对象又可以通过`__proto__`链接到另一个对象,形成一个链式结构。 ```javascript function Animal(name) { ...
在JavaScript中,实现继承的方法有很多种,使用构造函数继承是一种常见的方式,它允许子类的实例继承父类的属性。构造函数继承,也被称为伪类继承,主要是通过在子类的构造函数中调用父类的构造函数来实现继承。 ...
在JavaScript中,继承通常涉及到两个方面:**属性继承**和**方法继承**。属性继承可以通过在构造函数内部调用父类的构造函数来实现;而方法继承则可以通过修改对象的原型链来完成。 - **属性继承**:主要是指子类...
**原理**: 在JavaScript中,原型链继承是一种实现继承的方式,它通过让子类的原型对象指向父类的一个实例来实现属性和方法的共享。 - **核心概念**: 每个函数都具有一个`prototype`属性,该属性默认是一个空的对象...
采用call方法实现继承是JavaScript中利用原型和函数作用域链实现继承的一种常见方法。通过call方法,可以指定函数在特定的作用域中执行,允许将对象的上下文在调用函数时改变,这样就可以在子构造函数中调用父构造...
在JavaScript中,可以使用多种方式来实现继承,其中之一就是通过函数来模拟继承。本文将详细介绍如何利用函数实现JavaScript的继承,并结合属性特性和描述符来深入理解这一过程。 首先,我们要了解JavaScript中的...
在这个另类导航菜单中,JavaScript可能会被用来处理用户的鼠标悬停、点击事件,改变菜单项的状态,如颜色变化、动画过渡等,以实现其“另类”的特性。 【详细知识点】: 1. **DOM操作**:JavaScript通过Document ...