`
chengyong
  • 浏览: 29013 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript中使用call方法实现另类的继承

阅读更多

所有的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中的类继承,并特别关注`this.callParent`这个方法,它是如何被用来调用超类方法的。 首先,让我们了解JavaScript中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...

    JavaScript实现继承的几种方式

    本篇文章将深入探讨JavaScript中实现继承的几种常见方式。 1. 原型链继承 JavaScript的原型(prototype)机制是实现继承的基础。每个函数都有一个prototype属性,这个属性指向一个对象,这个对象的属性和方法可以被...

    JS:Call方法详解(js_的继承)

    虽然JavaScript不直接支持多重继承,但我们可以通过连续使用`call`方法来实现类似的效果。 **示例:** ```javascript function Class10() { this.showSub = function(a, b) { console.log(a - b); }; } ...

    详解Javascript继承的实现

    然后,通过将父类的一个实例赋值给子类的原型,可以实现方法的继承。这样做是因为子类的实例会查找其原型链来获取方法。 ```javascript // 将父类的一个实例设置为子类的原型 Manager.prototype = new Employee(); ...

    javascript中如何实现封装,继承和多态,并有详细

    javascript中如何实现封装,继承和多态,并有详细,我天天在传谢谢

    浅析JavaScript实现基于原型对象的“继承”.pdf

    浅析JavaScript实现基于原型对象的“继承” 本文旨在对JavaScript实现基于原型对象的“继承”进行深入分析,并与基于类的继承进行比较。通过对JavaScript的原型继承机制的介绍和实例分析,提出一个改进的“寄生组合...

    java script 继承的实现

    在深入研究 JavaScript 继承时,还需要了解其他相关概念,如 `Object.create()`、`instanceof`、`call()`、`apply()` 和 `bind()` 等方法,它们在继承实现中起到关键作用。同时,ES6 中引入的 `class` 关键字和 `...

    JavaScript中的call方法和apply方法使用对比

    2. 多重继承:通过使用多次call,可以在子类中继承多个父类的属性和方法,例如`Class2`的构造函数中使用了两个call调用,实现了多重继承。 3. 函数借用:一个对象可以借用另一个对象的方法。如第一个示例中,`add`...

    javascript控件开发之继承关系

    在这个主题中,“javascript控件开发之继承关系”主要探讨的是如何利用JavaScript的面向对象特性来构建和组织控件的层次结构,以及如何通过继承来实现代码的复用和模块化。 在JavaScript中,继承是基于原型...

    关于Javascript中call与apply的进一步探讨

    在JavaScript中,`call`和`apply`是两个非常重要的方法,它们都用于改变函数调用时的上下文(即`this`的值),并且可以灵活地传递参数。本篇文章将深入探讨这两个方法的用法、区别以及实际应用场景。 `call`方法...

    Javascript中的封装与继承

    JavaScript使用原型链来实现继承,每个对象都有一个`__proto__`属性,指向其构造函数的原型对象。原型对象又可以通过`__proto__`链接到另一个对象,形成一个链式结构。 ```javascript function Animal(name) { ...

    【JavaScript源代码】JavaScript继承的三种方法实例.docx

    在JavaScript中,继承通常涉及到两个方面:**属性继承**和**方法继承**。属性继承可以通过在构造函数内部调用父类的构造函数来实现;而方法继承则可以通过修改对象的原型链来完成。 - **属性继承**:主要是指子类...

    【JavaScript源代码】JavaScript中的几种继承方法示例.docx

    **原理**: 在JavaScript中,原型链继承是一种实现继承的方式,它通过让子类的原型对象指向父类的一个实例来实现属性和方法的共享。 - **核心概念**: 每个函数都具有一个`prototype`属性,该属性默认是一个空的对象...

    采用call方式实现js继承

    采用call方法实现继承是JavaScript中利用原型和函数作用域链实现继承的一种常见方法。通过call方法,可以指定函数在特定的作用域中执行,允许将对象的上下文在调用函数时改变,这样就可以在子构造函数中调用父构造...

    javascript用函数实现继承详解javascript技巧docx.docx

    在JavaScript中,可以使用多种方式来实现继承,其中之一就是通过函数来模拟继承。本文将详细介绍如何利用函数实现JavaScript的继承,并结合属性特性和描述符来深入理解这一过程。 首先,我们要了解JavaScript中的...

    javascript经典特效---另类导航菜单.rar

    在这个另类导航菜单中,JavaScript可能会被用来处理用户的鼠标悬停、点击事件,改变菜单项的状态,如颜色变化、动画过渡等,以实现其“另类”的特性。 【详细知识点】: 1. **DOM操作**:JavaScript通过Document ...

    JavaScript中继承原理与用法实例入门

    与其他支持继承的语言不同,JavaScript并没有内置的`extend`等方法,而是依赖于构造函数和原型链的概念来实现继承。在JavaScript中,一个对象的属性和方法可以分为两个部分:由构造函数创建的实例属性和由原型对象...

    javascript 原型模式实现OOP的再研究

    JavaScript中的原型模式是一种实现面向对象编程(OOP)的关键机制,它基于原型继承,使得对象可以从其他对象那里获得属性和方法。在这个模式下,每个函数都有一个`prototype`属性,这个属性是一个对象,用于共享属性...

    JavaScript中的原型和继承详解(图文)_.docx

    这使得 JavaScript 中的对象可以继承原型对象的方法和属性,从而实现代码的重用和简洁。 四、原型链 在 JavaScript 中,原型对象可以形成一个链式结构,即一个对象的原型对象可以有自己的原型对象,以此类推。这...

Global site tag (gtag.js) - Google Analytics