用prototype模拟继承
function Circle(radius) { //定义父类Circle
this.radius = radius;
}
Circle.prototype.area = function() { //定义父类的方法area计算面积
return this.radius * this.radius * 3.14;
}
function PositionCircle(x,y,radius) { //定义类PositionCircle
this.x = x; //属性横坐标
this.y = y; //属性纵坐标
Circle.call(this,radius); //调用父类的方法,设置PositionCircle类的radius属性 相当于super()
}
PositionCircle.prototype = new Circle(); //设置PositionCircle的父类为Circle类,将Circle中的所有属性,包括prototype都继承都PositionCircle中。
var pc = new PositionCircle(1,2,1);
alert(pc.area()); //3.14
//PositionCircle类的area方法继承自Circle类,而Circle类的
//area方法又继承自它的prototype属性对应的prototype对象
alert(pc.radius); //1 PositionCircle类的radius属性继承自Circle类
/*
注意:在前面我们设置PositionCircle类的prototype属性指向了一个Circle对象,
因此pc的prototype属性继承了Circle对象的prototype属性,而Circle对象的constructor属
性(即Circle对象对应的prototype对象的constructor属性)是指向Circle的,所以此处弹出
的是Circ.
*/
alert(pc.constructor); //Circle
/*为此,我们在设计好了类的继承关系后,还要设置子类的constructor属性,否则它会指向父类
的constructor属性
*/
PositionCircle.prototype.constructor = PositionCircle
alert(pc.constructor); //PositionCircle
相关推荐
这个"JavaScript杂项集合"包含的可能是一系列关于JavaScript的知识点、代码示例或者手册,帮助开发者理解和掌握这一强大的工具。 1. **基础概念**:JavaScript基于ECMAScript规范,是一种解释型、弱类型、动态类型...
JS相关的杂项知识涵盖了许多方面,下面我们将深入探讨一些关键知识点。 1. **变量与数据类型**:JavaScript中的变量是动态类型的,使用`var`, `let`, 或 `const` 定义。基本数据类型包括字符串(String)、数字...
“pinyin4js是一个汉字转拼音的Javascript开源库”表明这是一个JavaScript库,它的主要功能是将汉字转换为对应的拼音表示。在网页应用或者JavaScript编程中,这样的库可以帮助开发者处理与汉字拼音相关的任务,比如...
标签"JavaScript开发-其它杂项"表明这个库是JavaScript生态系统的一部分,特别适用于那些在项目中需要进行各种杂项转换任务的开发者。"其它杂项"可能意味着该库包含各种各样的转换功能,涵盖了开发过程中可能遇到的...
课程目标 •掌握密码学的基本概念 •掌握常见的加解密算法的原理 •掌握隐写术的概念与相对应的解密方法 知识大纲 ...•对称与不对称加密 •摘要算法 •常见的编码解码 ...•常见的JS的加解密 •JS混淆 •JSfuck •Jother
在本主题"JS的杂项"中,我们将探讨JavaScript在实际应用中的各种技术和概念,这些内容广泛且深入,涵盖了从基础语法到高级特性的多个方面。 首先,我们要了解JavaScript的基础。JS是基于ECMAScript标准的,它包括...
Node.js是一款基于Chrome V8引擎的JavaScript运行环境,它让JavaScript可以在服务器端执行,极大地拓宽了JavaScript的应用领域。而TensorFlow是谷歌开发的一款开源机器学习框架,它允许开发者构建、训练和部署各种...
本文将深入探讨如何使用`downloadjs`库或者其他纯JavaScript方法来触发文件下载。 **1. HTML5的download属性** 在HTML5中,`<a>`标签新增了一个`download`属性,允许开发者指定一个链接应该下载而不是在新窗口中...
GitKit.js是一个强大的开源库,它实现了Git的纯JavaScript版本,允许在Node.js环境中以及现代浏览器中使用Git功能。这个库使得开发者无需依赖其他系统工具,就能在JavaScript应用中直接处理Git操作,如克隆、拉取、...
5. **代码文件**:如.js、.py、.java、.cpp等,用于编写软件和应用程序。这些文件是编程和软件开发的基础。 6. **配置文件**:如.ini、.xml、.json,用于存储程序的设置和配置信息,帮助软件适应用户需求。 7. **...
"JavaScript开发-其它杂项"标签表明Three.js是JavaScript开发中的一个工具,可能用于各种不同的应用场景,包括但不限于游戏开发、数据可视化、虚拟现实(VR)或增强现实(AR)体验等。 **文件名称解析:** "mrdoob-...
总的来说,`wast2js`是JavaScript开发者利用WebAssembly性能优势的一个桥梁,通过将WebAssembly文本格式转换为JavaScript模块,使得开发者能够在JavaScript环境中无缝地集成和执行高性能的WebAssembly代码。...
"JavaScript开发-其它杂项" 这个标签告诉我们这个库是JavaScript开发者可能感兴趣的一个工具,属于JavaScript开发类别中的非主流或者多用途工具,可能包含了一些不太常见但实用的功能。 **文件名称解析:** ...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地推动了全栈开发的流行。Egg.js 是一个由阿里云开发的企业级 Node.js 框架,旨在提供一套高效...
标签“Node.js开发-其它杂项”表明这个项目涵盖了Node.js开发的一些通用知识,可能涉及到的其他主题可能包括错误处理、中间件使用、安全实践(如密码哈希和验证)、以及可能的用户认证和授权策略。 总的来说,这个...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够使用 JavaScript 在服务器端编写可伸缩的网络应用。这个“Node.js-Node.js机器人平台”项目,显然旨在利用 Node.js 的特性来构建智能机器...
Platform.js 是一款强大的JavaScript库,专为检测运行环境而设计,它能帮助开发者准确识别用户所使用的操作系统、浏览器版本、设备特性等信息。这个库尤其适用于跨平台的Web应用开发,确保你的代码能在各种不同的...
5. **其它杂项**:除了核心的NLP功能外,NLP.js可能还包括一些额外的工具或模块,如文本预处理(去除停用词、标点符号等)、关键词提取、语义相似度计算等。这些附加功能使得NLP.js成为一个全面的解决方案,满足...
3. **JavaScript开发中的其他杂项** - **兼容性处理**:在实际应用中,开发人员可能需要根据WebP的支持情况动态加载不同格式的图片,以确保所有用户都能看到内容。这可以通过JavaScript进行条件判断和图片切换来...
标签"JavaScript开发-其它杂项"表明这个库主要适用于JavaScript开发者,特别是一些需要处理网页中非核心功能但又不可或缺的细节,如分享按钮。对于那些不熟悉原生平台API的前端开发者来说,`nativeShare.js`是一个...