javascript里的继承

js里面继承的方式,

1. 类式继承,通过构造函数的继承

 1 function extend(subClass, superClass){
 2     var F = function(){};
 3     F.prototype = superClass.prototype;
 4     subClass.prototype = new F();
 5     subClass.prototype.constructor = subClass;
 6
 7     subClass.superclass = superClass.prototype; // optional
 8     if (superClass.prototype.constructor == Object.prototype.constructor){
 9         superClass.prototype.constructor = superClass;
10     }
11 }

2. 原型式继承,通过对象的继承

function clone(object){
    function F(){}
    F.prototype = object;
    return new F();
}

javascript里的继承

时间: 2024-10-31 11:25:03

javascript里的继承的相关文章

【JavaScript】类继承(对象冒充)和原型继承__深入理解原型和原型链

JavaScript里的继承方式在很多书上分了很多类型和实现方式,大体上就是两种:类继承(对象冒充)和原型继承. 类继承(对象冒充):在函数内部定义自身的属性的方法,子类继承时,用call或apply实现对象冒充,把类型定义的东西都复制过来,这样的继承子类与父类并没有多少关联,不互相影响,有利于保护自身的一些私有属性. 原型继承:每个函数都有自己的原型(prototype)属性,这个属性是在生成实例对象时自动创建的.它本身又是一个对象,拥有能够在实例间共享的属性和方法.而实例本身的属性和方法,则

javascript中类式继承和原型式继承的实现方法和区别

在所有面向对象的编程中,继承是一个重要的话题.一般说来,在设计类的时候,我们希望能减少重复性的代码,并且尽量弱化对象间的耦合(让一个类继承另一个类可能会导致二者产生强耦合).关于“解耦”是程序设计中另一个重要的话题,本篇重点来看看在javascript如何实现继承. 其它的面向对象程序设计语言都是通过关键字来解决继承的问题(比如extend或inherit等方式).但是javascript中并没有定义这种实现的机制,如果一个类需要继承另一个类,这个继承过程需要程序员自己通过编码来实现. 一.类式

javascript 之 prototype继承机制

理解Javascript语言的继承机制 javascript没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承. 1.引言 1994年,网景公司急需一种网页脚本语言,使得浏览器可以与网页互动.工程师Brendan Eich 负责开发这种新语言.他觉得,没必要设计得很复杂,这种语言只要能够完

JavaScript学习13 JavaScript中的继承

JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式:对象冒充 function Parent(username) //父类对象 { this.username = username; //下面的代码最关键的部分就是将子对象的this传递给了父对象 this.sayHello = function() { alert(this.username); } } f

Javascript对象的继承

对象的继承 Javascript主要通过原型链实现继承,原型链的构建是通过将一个类型的实例赋值给另一个构造函数的原型实现的. 由于所有的实例对象共享同一个prototype对象,那么从外界看起来,prototype对象就好像是实例对象的原型,而实例对象则好像"继承"了prototype对象一样.这就是Javascript继承机制的设计思想. 继承方法: (1)原型链继承方法:基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.继承是通过创建超类型的实例,并将该实例赋给子类型

JavaScript的原型继承

JavaScript是一门面向对象的语言.在JavaScript中有一句很经典的话,万物皆对象.既然是面向对象的,那就有面向对象的三大特征:封装.继承.多态.这里讲的是JavaScript的继承,其他两个容后再讲. JavaScript的继承和C++的继承不大一样,C++的继承是基于类的,而JavaScript的继承是基于原型的. 现在问题来了. 原型是什么? 原型我们可以参照C++里的类,同样的保存了对象的属性和方法.例如我们写一个简单的对象 function Animal(name) { t

谈谈我对javaScript里prototype的看法

javaScript创建每一个函数fn时,都会有一个ptototype属性,这个prototype其实就是一个指针,而这个指针总指向一 个原型对象,这个原型对象的用途就是将特定的属性或者方法包含在自己内部,从而实现了一个所有实例共享的作用. 什么?你还不明白,好吧!我简单来给你解释下吧,在解惑时,我得先让你跟着我的思路理一下.不然你会不知道我 在说什么了. 万物皆对象,好色如狼的我很自然地把女孩当成一个对象即javaScript里的一个Function,说白了就是我把女孩这比喻 成javaSri

关于JavaScript中实现继承,及prototype属性

感谢Mozilla 让我弄懂继承. JavaScript有八种基本类型,函数属于object.所以所有函数都继承自object.//扩展:对象,基本上 JavaScript 里的任何东西都是对象,而且都可以被储存在变量里.将这个记在脑子里. 但是JavaScript并没有真正意义上的继承.而是类似于指向和复制.并且每个函数和对象都有prototype属性.("原型链"(prototype chain)模式) 所有就构造了如同树结构一般的原型链. 常见的几种继承方法: 1. functi

javascript原型式继承

之前的文章里有提到过javascript类式继承,那种继承方式极大的方便了其他语言(非javascript)程序员使用javascript来实现继承,但是有缺点,就是建立了一个非必要的构造函数,那这篇文章我们来谈一谈具有javascript自身特色的原型式继承. 我们先来看一看下面的代码: var Car = { color: 'red', size: 'big', getAttr: function() { return this.color } } var car1 = Object.cre