1.
第一种方式,冒充对象的方式.(利用js里的每一个方法名都是一个Function对象)
-
- function Parent(username){
- this.username = username;
- this.say = function(){
- alert(this.username);
- }
- }
-
- function Child(username,password){
-
- this.temp = Parent;
- this.temp(username);
- delete this.temp;
-
-
-
-
-
- this.password = password;
- this.hello = function(){
- alert(this.password);
- }
- }
-
- var parent = new Parent("zhangsan");
- parent.say();
-
- var child = new Child("lisi","123456");
- child.say();
- child.hello();
2.
第二种方式:call()函数方式 call()函数是Function对象的一个函数,具体用法如下
-
-
- function test(str){
- alert(this.username + "," + str);
- }
-
- var o = new Object();
- o.username = "zhangsan";
- test.call(o,"123456");
所以继承可以这样实现:
- function Parent(username){
- this.username = username;
- this.say = function(){
- alert(this.username);
- }
- }
- function Child(username,password){
- Parent.call(this,username);
- this.password = password;
- this.hello = function(){
- alert(this.password);
- }
- }
- var parent = new Parent("zhangsan");
- parent.say();
-
- var child = new Child("lisi","123456");
- child.say();
- child.hello();
3.
第三种实现方式:apply()函数方式,apply()和call()是一样的,只不过参数传递不同而已,apply的参数为数组
-
-
-
- function Parent(username){
- this.username = username;
- this.say = function(){
- alert(this.username);
- }
- }
- function Child(username,password){
- Parent.apply(this,new Array(username));
- this.password = password;
- this.hello = function(){
- alert(this.password);
- }
- }
- var parent = new Parent("zhangsan");
- parent.say();
-
- var child = new Child("lisi","123456");
- child.say();
- child.hello();
4.
第4种方式:原型链实现继承
-
- function Parent(){
- }
- Parent.prototype.hello = "hello";
- Parent.prototype.sayHello = function(){
- alert(this.hello);
- }
-
- function Child (){
- }
- Child.prototype = new Parent();
-
- Child.prototype.world = "world";
- Child.prototype.sayWorld = function(){
- alert(this.world);
- }
-
- var child = new Child();
- child.sayHello();
- child.sayWorld();
5.
第五种方式:混合模式实现继承
-
- function Parent(hello){
- this.hello = hello;
- }
- Parent.prototype.sayHello = function(){
- alert(this.hello);
- }
-
- function Child(hello,world){
- this.world = world;
- Parent.call(this,hello);
-
- }
- Child.prototype = new Parent();
- Child.prototype.sayWorld = function(){
- alert(this.world);
- }
-
- var child = new Child("hello","world");
- child.sayHello();
- child.sayWorld();
分享到:
相关推荐
本篇文章将深入探讨JavaScript中实现继承的几种常见方式。 1. 原型链继承 JavaScript的原型(prototype)机制是实现继承的基础。每个函数都有一个prototype属性,这个属性指向一个对象,这个对象的属性和方法可以被...
我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。 但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语言,而是基于对象的语言。
本篇文章将深入探讨JavaScript实现继承的七种常见方式,帮助你更好地理解和运用这一概念。 1. 原型链继承(Prototype Chain Inheritance) 原型链是JavaScript实现继承的基础。每个函数都有一个`prototype`属性,这...
JavaScript继承第1种方式:对象冒充;第2种方式:call方法;第3种方式:apply方法;第4种方式:原型链方式;第5种方式:混合方式(推荐)
JavaScript 中的继承方式是基于原型的,与基于类的编程语言,如 C++ 和 Java,截然不同。JavaScript 的灵活性使得其实现继承的方式非常多样化。本文将介绍 JavaScript 中的 9 种继承实现方式,帮助读者更好地理解 ...
JavaScript中的类继承是一种模拟传统面向对象编程中类概念的方式,因为JavaScript本身是一种基于原型的面向对象语言。在JavaScript中,对象可以直接从其他对象继承属性和方法,而不是通过类的实例化。这种继承机制...
javascript 五种继承简介。
此外,JavaScript的灵活性允许开发者选择基于类的继承方式,或者利用原型继承的微妙之处,实现更高效的设计。 4.1 为什么需要继承 继承的主要目的是代码复用和降低耦合度。通过继承,可以在已有类的基础上扩展功能...
JavaScript是一种广泛应用于网页和网络应用的脚本语言,尤其在前端开发中占据核心地位。控件开发是JavaScript应用中的重要部分,它涉及到UI组件的创建和功能实现。在这个主题中,“javascript控件开发之继承关系”...
本文将详细介绍六种实现JavaScript继承的方法。 1. 原型链继承 原型链继承是通过改变子类型的原型对象来实现继承的。子类型构造函数的原型被替换为超类型构造函数的一个实例,这样子类型就可以继承超类型的所有属性...
笔者历经多年javascript的开发,痛彻体会javascript面向对象编程的不便性,精心制作了一个类的定义与继承功能的js,实现了在javascript中对类的定义、继承、封装机制,主要功能特征包括: 一、 统一了类定义的语法...
JavaScript是一种动态类型的语言,它没有像Java或C++那样的传统类,而是使用函数作为构造器来模拟类的行为,并通过原型链实现继承。本文将深入探讨JavaScript中的类和继承,并结合`prototype.js`文件中的示例进行...
Javascript中的几种继承方式对比分析_.docx
【温故而知新】JavaScript类、类继承、静态方法
javascript的几种继承方法介绍.doc
JavaScript 是一种动态类型的编程语言,其核心特性之一就是原型继承。在JavaScript中,对象可以通过原型链实现继承,这是JavaScript中实现面向对象编程的重要方式。本文将详细介绍JavaScript中的三种主要继承方法:...
JavaScript继承机制的实现方式多样化,每种继承机制都有其优缺点。通过深入理解JavaScript继承机制,可以更好地理解JavaScript面向对象编程机制,并提高开发效率。本文对JavaScript继承机制的研究将有助于读者更好地...
ES6中引入了class关键字和extends关键字,它们提供了一种更加直观和面向对象的方式来定义和继承类,使得JavaScript的面向对象编程更加接近传统面向对象语言的模式。通过class关键字定义的类,其内部的构造函数方法...
本文将详细介绍JavaScript中的类继承概念,包括基本原理、实现方式以及一些高级用法。 #### 二、继承概述 在JavaScript中,继承主要通过原型链来实现。每个对象都有一个`prototype`属性,指向它的原型对象。当尝试...