//F是空对象,所以几乎不占内存。这时,修改SonType的prototype对象,就不会影响到ParentType的prototype对象。
var F = function(){};
F.prototype = ParentType.prototype;
SonType.prototype = new F();
SonType.prototype.constructor = SonType;
//为子对象设一个uber属性,这个属性直接指向父对象的prototype属性。(uber是一个德语词,意思是"向上"、"上一层"。)这等于在子对象上打开一条通道,可以直接调用父对象的方法。这一行放在这里,只是为了实现继承的完备性,纯属备用性质。
SonType.uber = ParentType.prototype;
function ParentType(name, age) {
this.name = name;
this.age = age;
};
ParentType.prototype.getParentName = function() {
return this.name;
};
ParentType.prototype.getParentAge = function() {
return this.age;
};
ParentType.prototype.ParentPrint = function(_that) {
if(!_that) {
return this.getParentName() + '-' + this.getParentAge();
}else {
return _that.getParentName() + '-' + _that.getParentAge();
}
};
function SonType(name, age, sex) {
ParentType.call(this, name, age); //将父对象的构造函数绑定在子对象上
this.sex = sex;
};
SonType.prototype.getSonSex = function() {
return this.sex;
};
SonType.prototype.SonPrint = function() {
return SonType.uber.ParentPrint(this) + '-' + this.getSonSex();
};
var son = new SonType('Jeremy', 22, '男');
son.SonPrint(); //Jeremy-22-男
相关推荐
React Native 桥接原生实现 JS 调用原生方法
React Native 编写原生方法并在 JS 层调用原生方法
一文让你了解各种原生JS的实现方式
习惯了平时的快速开发的模式,相信大家对于一些原生的方法也是熟记于心,比如改变this指向的call,apply方法,创建对象的new关键字,实现异步编程的promise,又或者是自己手动实现的累加函数等等,今天本人就在这里给大家分享部分原生js方法的实现方式。本文只是方便个人知识存储,但也希望对大家有用。 call 原理:call方法接收一个目标对象以及一系列的参数,把当前的this对象指向目标对象,并执行方法 Function.prototype.call = function (cont
js 实现类式继承
NULL 博文链接:https://wurui-0.iteye.com/blog/2000177
原生js实现各种案例
html文件: <html> <head> <meta charset="utf-8"> <title></title> <!-- 引入文件 --> <link rel="stylesheet" href="css/index.css"> <link rel="stylesheet" href="layui-v2.5.6/layui/css/layui.css"> </he
大开眼界的十大开源人工智能项目
这是一个强大的开源工具,能让你在不同框架之间自由切换,无需重写代码。它是一个开源工具,能用简单的SQL语言同时处理数据和AI模型,让一切变得有序而高效。Rasa是我开发智能聊天机器人时的首选,它让你轻松掌控机器人对话的每个细节。我经常用它快速验证模型在不同框架下的表现,省去了大量烦躁的调试过程。最近发现的Vapi是一个以API方式提供的语音AI工具,开发者友好程度超乎想象。KNIME是一个以拖拽方式构建数据分析流程的开源工具,仿佛是数据界的乐高积木。它像个忠诚的守门员,确保你的模型始终健康运行。
核磁干货 | RESTplus实战:静息态fMRI预处理全流程解析
本文详细解析了使用RESTplus工具包进行静息态fMRI数据预处理的完整流程,包括数据准备、环境配置、预处理步骤及高级分析技巧。RESTplus作为基于SPM的批处理工具,以其图形化界面和智能化参数设置显著提升了核磁静息态数据分析的效率,特别适合新手和临床研究人员。文章还分享了实战中的常见问题解决方案和性能优化技巧。
js如何实现类
js如何实现类 方法一:使用原型 const Car = function (name,length){ this.name = name this.length = length } Car.prototype.run = function(){ console.log(`我是${this.name},我能跑${this.length}公里`) } car1 = new Car("奔驰","1000") car1.run() 方法二:用class class Car{ c
GD32F303串口DMA发送数据避坑指南:为什么你的发送函数会卡住?
本文深入解析GD32F303单片机串口DMA发送数据时常见的卡死问题,提供详细的避坑指南。从DMA传输完成中断时序、发送状态管理到双通道DMA的特别注意事项,全面剖析问题根源并给出解决方案,帮助开发者构建健壮的DMA发送机制。
js实现的文件操作类封装,50个实例
js实现的文件操作类封装,100个实例。
普元EOS8.3精简版安装指南:从零开始搭建低代码开发环境
本文详细介绍了普元EOS8.3精简版的完整安装流程。从JDK1.8环境准备、MySQL数据库配置与初始化,到核心配置文件修改、服务启动与登录验证,提供了从零开始搭建低代码开发环境的清晰步骤和常见问题排坑指南,帮助开发者快速部署并体验平台核心功能。
基于 OpenCVSharp 的晶圆缺口自动检测与旋正方案
在半导体制造过程中,晶圆(Wafer)需要精确定位才能进行后续加工。每个晶圆边缘都有一个特定的缺口,这个缺口就像 "箭头" 一样,帮助机器确定晶圆的方向。我们的任务就是通过摄像头拍摄的图片,自动找到这个缺口的位置,计算出需要旋转多少角度才能让晶圆对准正确方向。简单来说,这个技术就像给晶圆 "找方向",确保它在生产线上始终保持正确的姿态。
js中类的简单实现和理解
js类的简单实现
educoder中Hive综合应用案例 — 用户搜索日志分析
Hive综合应用案例 — 用户搜索日志分析
JS 原生实现类安卓密码输入框
场景 除开移动端的场景 由于谷歌火狐等浏览器对于input:password的标签会弹出是否保存密码的功能,网上找了一下,没有什么很完美的解决ban
Qt C++ 电子海图与作战叠加(Overlay)系统
lab_pos->setText(QString("坐标: X%1 Y%2").arg(p.x(),0,'f',0).arg(p.y(),0,'f',0));lab_distance->setText(QString("距离: %1 海里").arg(dist,0,'f',1));lab_bearing->setText(QString("方位: %1°").arg(bear,0,'f',1));// 绘制S-57海图基底。scene->addText("封锁线").setPos(450,180);
SmartFusion从FPGA到ARM(八)——CoreUARTapb的使用
文章目录1.CoreUARTapb简介2.添加CoreAPB3总线IP核3.添加CoreUARTapb4.驱动代码实现5.库函数简介6.串口printf函数实现7.串口接收轮询和中断方式 系列教程:SmartFusion从FPGA到ARM系列教程 1.CoreUARTapb简介 对于SmartFusion2来说,MSS_UART的管脚可以任意分配,但是对于SmartFusion来说,MSS_UART的管脚是固定的不能分配: 109-UART0_RX 110-UART0_TX 111-UART1_RXD 11
原生js实现类名(class)的增、删
先判断是否有这个类名: function hasClass( elements,cName ){ return !!elements.className.match( new RegExp( "(...
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
Sparkler:让JavaScript拥有原生模式匹配能力的革命性工具
Sparkler 是一款基于 [sweet.js](https://github.com/mozilla/sweet.js) 宏构建的 JavaScript 模式匹配引擎,它让开发者能够以类原生语法的方式在 JavaScript 中实现强大的模式匹配功能。该工具无运行时依赖,会将模式匹配代码编译为简单的 `if` 和 `for` 语句,为 JavaScript 开发带来更简洁、更优雅的代码编写体验
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
原生js之道——原生js编写类选择器
一、类选择器的概念 类选择器,就是通过class属性获取节点。比如一个html结构中,有三个p标签都具有class=”red”的属性,那么类选择器返回的就是这三个p标签。 在jquery中,我们可以很方便的通过$(“.red”)这种方式按照类获取节点。但是在原生的javascript中,有getElementById(按照id属性获取元素)、getElementsByTagName(按照标签名
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
es6在原生代码的用法_领略原生 JavaScript ES6~ES10 的魅力
作为前端开发工程师,盲目追逐框架似乎有点舍本逐末,要知道基本功才是硬核。JavaScript 的语法这几年一直在更新,不管我们是框架的核心开发者还是业务重塑者,学习下最新的 JavaScript 语法和能力是非常有好处的。下面我们通过几个小示例来看下新语法的强大之处:“初始化一个数组,要求数组的长度是 5,每个元素的默认值是 0”这道题看似非常简单,我们可能会这样来写代码:const arr = ...
原生js实现基本选择器
我们所知常见的JS 基本选择器有获取ID 的:getElementByid,获取name 的:getelementsbyname,返回带有指定标签名的对象的集合getElementsByTagName();但获取class原生JS 就没有提供了,只要用jquery 里面class选择器,不过也可以通过JS 来写个简单的 function getEleClass(cls){ var classo...
原生js实现addClass,removeClass,hasClass方法
第一部分:原生js实现addClass,removeClass,hasClass方法 function hasClass(elem, cls) { cls = cls || ''; if (cls.replace(/\s/g, '').length == 0) return false; //当cls没有参数时,返回false return new RegExp(' ' +...
原生JS(JavaScript)
JS 是JavaScript的简述 JS基于对象和事件驱动脚本语言,作用在浏览器上 JS的事件 onsubmit 主要用于表单的提交,绑定的位置在form标签里面,要有返回标记,如果提交的数据校验未通过,不允许表单提交 onload 用于页面加载的时候使用的事件,绑定的位置在body标签里,也可以用window.οnlοad=function(){} onclick/ondblclick 主要用于鼠标点击事件,常见的有按钮、图片、文字、超链接等等 onfocus/onblur 聚焦离焦事件,主要用
原生js
原生js介绍 原生态JS是指遵循ECMAscript标准的javascript,不同于微软的jscript也不依赖于任何框架,依托于浏览器标准引擎的脚本语言。 原生js获取DOM对象的几种方法 通过id获取 <div id="id1"></div> <script> let box= document.getElementById("id1"); <...
JavaScript 获取元素的原生JS方法
本文介绍了 JavaScript 中获取元素的原生JS方法的相关内容。。。
1765



被折叠的 条评论
为什么被折叠?



