js中继承的实现方式很多,此处给出两种常用方式。

<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
//Range构造函数,定义属性
function Range(from,to){
this.from = from;
this.to = to;
}
//Range原型,定义方法
Range.prototype.isIn = function(num){
if(num>=this.from&&num<=this.to){
return true;
}
return false;
}
//Range原型中也可以定义有固定值的属性
Range.prototype.func = '范围';
//SubRange构造函数,定义属性
function SubRange(from,to){
Range.call(this,from,to);
this.middle = (from+to)/2;
}
/*
//方法一。需建立Range的实例
SubRange.prototype = new Range();//此处是与方法二的区别
SubRange.prototype.constructor = SubRange;
*/
//方法二。通过空对象作中介,让SubRange继承Range.prototype,这样做的优点是效率比较高(不用执行和建立Range的实例了),比较省内存。
extend(SubRange,Range);
function extend(Child, Parent) {
//此处是与方法一的区别
  var F = function(){};
  F.prototype = Parent.prototype;
  Child.prototype = new F();
  Child.prototype.constructor = Child;
  //Child.uber = Parent.prototype;//本行只是为了实现继承的完备性,纯属备用性质。
}
//新增方法
SubRange.prototype.isLagger = function(num){
if(!this.isIn(num)&&num>this.to) {
return true;
}
return false;
};
//重写方法
SubRange.prototype.isIn = function(num){
if(num>this.from&&num<this.to) {
return true;
}
return false;
};
var subRange = new SubRange(1,10);
alert(subRange.isIn(1));
alert(subRange.isLagger(3));
alert(subRange.func);
var range = new Range(1,10);
alert(range.isIn(1));
alert(range.func);
</script>
</html>

js中的继承的更多相关文章

  1. js中实现继承的几种方式

    首先我们了解,js中的继承是主要是由原型链实现的.那么什么是原型链呢? 由于每个实例中都有一个指向原型对象的指针,如果一个对象的原型对象,是另一个构造函数的实例,这个对象的原型对象就会指向另一个对象的 ...

  2. 【学习笔记】六:面向对象的程序设计——理解JS中的对象属性、创建对象、JS中的继承

    ES中没有类的概念,这也使其对象和其他语言中的对象有所不同,ES中定义对象为:“无序属性的集合,其属性包含基本值.对象或者函数”.现在常用的创建单个对象的方法为对象字面量形式.在常见多个对象时,使用工 ...

  3. JS中的继承(上)

    JS中的继承(上) 学过java或者c#之类语言的同学,应该会对js的继承感到很困惑--不要问我怎么知道的,js的继承主要是基于原型(prototype)的,对js的原型感兴趣的同学,可以了解一下我之 ...

  4. JS中的继承(下)

    JS中的继承(下) 在上一篇 JS中的继承(上) 我们介绍了3种比较常用的js继承方法,如果你没看过,那么建议你先看一下,因为接下来要写的内容, 是建立在此基础上的.另外本文作为我个人的读书笔记,才疏 ...

  5. js中的继承和重载

      js中有三种继承方式:一.通过原型(prototype)实现继承 二.借用构造函数式继承,可分为通过call()方法实现继承和通过apply()方法实现继承 仅仅通过原型继承我们可以发现在实例化子 ...

  6. 浅谈JS中的继承

    前言 JS 是没有继承的,不过可以曲线救国,利用构造函数.原型等方法实现继承的功能. var o=new Object(); 其实用构造函数实例化一个对象,就是继承,这里可以使用Object中的所有属 ...

  7. JS中对象继承方式

    JS对象继承方式 摘自<JavaScript的对象继承方式,有几种写法>,作者:peakedness 链接:https://my.oschina.net/u/3970421/blog/28 ...

  8. 详细理解JS中的继承

    正式说继承之前,有两个相关小点: JS只支持实现继承,即继承实际的方法,不支持接口继承(即继承方法的签名,但JS中函数没签名) 所有对象都继承了Object.prototype上的属性和方法. 说继承 ...

  9. JS中的继承实现方式

    第一种:通过prototype来实现 prototype.html <!DOCTYPE html><html lang="en"><head> ...

随机推荐

  1. mysql与oracle常用函数及数据类型对比

    最近在转一个原来使用oracle,打算改为mysql的系统,有些常用的oracle函数的mysql实现顺便整理了下,主要是系统中涉及到的(其实原来是专门整理过一个详细doc的,只是每次找word麻烦) ...

  2. jQuery超酷下拉插件6种效果演示

    原始的下拉框很丑啦, 给大家一款jQuery超酷下拉插件6种效果 效果预览 下载地址 实例代码 <div class="container"> <section ...

  3. CSV.js – 用于 CSV 解析和编码的 JS 工具库

    逗号分隔值(CSV )文件用于以以纯文本的形式存储表格化数据(数字和文本). CSV 文件包含任意数量的记录,通过某种换行符分隔,每条记录由字段,其他一些字符或字符串分隔,最常用的是文字逗号或制表符. ...

  4. Jquery中的日历插件

    这个插件很简单:只需要在HTML代码中引入插件如下,CLASS名和click事件函数固定! <!doctype html> <html lang="en"> ...

  5. [deviceone开发]-do_RichLabel的简单示例

    一.简介 do_RichLabel支持html格式的文本内容,但是只支持部分标签,这个示例列出了一些支持的常用标签,android能支持的标签相对ios更少 二.效果图 三.相关下载 https:// ...

  6. Javascript 面向对象编程初探(一)--- 封装

    Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果 ...

  7. sharepoint项目遇到的WebDAV和HTTP PUT的安全隐患解决办法

    最近一个项目,客户进行了安全检测,检测出如下安全隐患,其实这些隐患全是IIS设置的事情   许多人误认为SharePoint是在使用由IIS提供的WebDAV功能. 实际上, SharePoint在S ...

  8. [Android]使用Kotlin开发Android(二)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4829007.html [TOC] 使用Kotlin+OkHtt ...

  9. [IOS]《A Swift Tour》翻译(一)

    以下翻译内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3768936.html 碎碎念... Swift是苹果在WWDC刚发 ...

  10. 【代码笔记】iOS-读取一段文字

    一,效果图. 二,工程图. 三,代码. RootViewController.m #import "RootViewController.h" @interface RootVie ...