javascript中的对象继承关系(2)

  在上一章中,我们着重介绍了JavaScript中类之间的原型继承关系:原型继承对于继承类中的方法来说是很方便的.那么我们今天就来看一下继承中的类继承以及类继承和原型继承的混用,所谓类继承,就是使用call或者apply方法来进行冒充继承:

1 function Desk(size,height){
2     this.size=size;
3      this.height=height;
4 }
5 function MJDesk(size,height){
6     Desk.call(this,size,height);//这种就叫类继承.
7 }
8  var mj = new MJDesk(10,123);

  像上面这种就是我们要使用的类继承,用这种继承,我们可以访问类中的方法和属性,但是无法访问父类原型中的方法和属性,这种方法别名冒充继承,顾名思义,就是一个假的继承,所以,假的当然不能继承真的原型,所以,类继承的缺点也是很明显的,当我们使用的多的时候,就会造成内存的浪费.由此,我们就出现了类继承和原型继承混合使用的方法:

 1 function Desk(size,height){
 2      this.size=size;
 3      this.height=height;
 4  }
 5  function MJDesk(size,height){
 6      Desk.call(this,size,height);//这种就叫类继承.
 7  }
 8 MJDesk.prototype=new Desk();//原型继承
 9 var mj = new MJDesk(12,12);
10 //当然此处的原型继承用我们上一章讲的使用一个空函数进行继承的方式更好.

当然,我们现在使用最多的就是这种二者混合用的方式了!

时间: 2024-08-13 21:01:33

javascript中的对象继承关系(2)的相关文章

javascript中的对象继承关系

相信每个学习过其他语言的同学再去学习JavaScript时就会感觉到诸多的不适应, 这真是一个颠覆我们以前的编程思想的一门语言,先不要说它的各种数据类型以及表达 式的不同了,最让我们头疼,恐怕就是面向对象的部分了,在JavaScript中,是没有给定一 个创建对象的关键词的,它不像Java中一个class就可以创建一个对象,在JavaScript中, 对象是一个十分松散的的key-value对的组合,通常,我们在创建对象时,可以通过{}来直 接生成一个对象,就像我们之前所学的,对象中有属性,有行

cocos2d JS -> JavaScript 中的简单继承关系

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; min-height: 25.0px } span.Apple-tab-span { white-space: pre } JavaScript 语言本身没有提供类,没有其他语言的类继承机制,它的

javascript中的对象之间继承关系

相信每个学习过其他语言的同学再去学习JavaScript时就会感觉到诸多的不适应,这真是一个颠覆我们以前的编程思想的一门语言,先不要说它的各种数据类型以及表达式的不同了,最让我们头疼,恐怕就是面向对象的部分了,在JavaScript中,是没有给定一个创建对象的关键词的,它不像Java中一个class就可以创建一个对象,在JavaScript中,对象是一个十分松散的的key-value对的组合,通常,我们在创建对象时,可以通过{}来直接生成一个对象,就像我们之前所学的,对象中有属性,有行为,这里我

漫话javascript函数与对象的关系

javascript函数与对象的关系 一直觉得红宝书中的一句话特别经典"函数是对象,函数名是引用",揭示了函数就是对象的本质: 在javascirpt中有一类数据类型,我们通常称之为简单的数据类型,包含了常见的数字(Number),字符串(String),布尔值(true,false),以及常常让人难以琢磨和始料未及的null,undefined:除了这些之外的其他所有值我们都可以成为对象,虽然上述的几种简单的数据类型拥有方法或属性:但是他们不是可变的:在<javascript语

javascript中最佳的继承方案

首先是为什么要继承? 万物皆对象,在面向对象思想的开发中,研发一个汽车是需要一个一个部件组成的,每一个部件都是一个对象,每个对象都有自己的功能和职责,而继承就是要解决对象之间避免的重复造轮子,避免做重复的工作. 比如:我已经有了一个汽车的近光灯对象,我还需要构建一个远光灯对象,让这个灯的功能变得更加强大,我当然不想在重新学习.如何买材料.制作技术等等,我只需要将制作近光灯的技术搬以致用就行了,甚至我还可以增加新的功能,给它扩展一个远光的功能,这样一来我的成本是不是就很低了呢,这样一来我的核心置关

JavaScript中String对象的match()、replace() 配合正则表达式使用

正则表达式由来已久,查找替换功能非常强大,但模板难记复杂. JavaScript中String对象的match().replace()这2个方法都要使用正则表达式的模板.当模板内容与字符串不相匹配时,match()返回null,replace()返回原字符串. 正则表达式的模板对象 //标准写法 regexp = new RegExp(pattern[, flag]); pattern: 模板的用法是关键,也是本章的主要内容. flag: "i"(ignore)."g&quo

angularjs 中的scope继承关系——(2)

转自:http://www.lovelucy.info/understanding-scopes-in-angularjs.html angularjs 中的scope继承关系 ng-include 假设在我们的 controller 中, $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11}; HTML 为: <script type="text/ng-template" id="/tpl1.html&quo

javascript中Date对象的应用——简易日历的实现

× 目录 [1]效果 [2]HTML [3]CSS[4]JS 前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 使用type=number的两个input分别作为年和月的输入控件,这样在高级浏览器下自带调节按钮 按照周日到周一的顺序进行星期的排列 <div class="box"> <header class='control'> <input id="con

Javascript中的对象和原型(3)

在Javascript中的对象和原型(二)中我们提到,用构造函数创建的对象里面,每个对象之间都是独立的,这样就会降低系统资源的利用率,解决这样问题,我们就要用到下面提到的原型对象. 一 原型对象 原型对象实际上就是构造函数的一个实例对象,和普通的实例对象没有本质上的区别.可以包含特定类型的所有实例的共享属性或者方法.这样,如果我们需要修改所有实例中的属性或者方法,就只需要修改一处,就能够影响到所有实例了.因为原型中的属性和方法是共享的.我们可以看下两个图示:       构造函数方式 原型模式方