javascript 的两种继承方式 (构造函数的继承、非构造函数的继承)

【JS继承】JS继承之构造函数继承 一、构造函数js中定义一个function,当使用new关键字调用这个function的时候,这个function成为一个构造函数。如下所示: 二、new关键字当使用new关键字调用构造函数生成一个对象实例时,js做出的关键处理如下: 1.创建一个新的对象,将构造函数内this指针指向新建对象。 2.将新建对象的__proto__属性设置成构造函数的prototype属性,确保新建对象是构造函数实例。 3.运行一遍构造函数,如果构造函数本身需要返回一个object或者array对象,则舍去新创建对象 阅读详情

个人原因,这里只笔录非构造函数继承的方式!

其实吧,说白了非构造函数继承可以将就是构造对象继承!

Object()这个谁谁都不陌生,构造对象函数嘛!

是的是的就是他,通过他就把子对象的prototype指向了父对象,怎么会是子指向父呢?

function Object(oneObj) {
	function F() {}
	F.prototype = oneObj;
	return new F();
}

新构造的对象为父,继承的是传参子对象。

还是有点蒙圈!上列子吧!

let ageObj = {
	age: 18
}
let lle = Object(ageObj);
lle.name = 'lle';
console.log(lle.name, ':', lle.age);

这样新构建的lle对象就了ageObj中的age属性了!

很简单吧!

其实这种当时还是属于原型链拷贝!还有其他深浅拷贝,荐http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html


【Unity 实用工具篇】 | 滚动列表插件FancyScrollView,快速上手使用 FancyScrollView 是一款专为Unity引擎开发的高效滚动列表组件。它具有轻量级、可定制性强、性能优秀等特点。 使用FancyScrollView插件进行Unity项目开发,可以极大提升开发效率,尤其是在需要大量列表展示的场景下,如商城、目录列表、角色选择界面等。开发者可以将注意力集中在业务逻辑的实现上,而将界面渲染和交互部分交由FancyScrollView处理。 本文来介绍一下FancyScrollView的功能展示和基本使用方法。 阅读详情

相关推荐

千兆以太网的接收和crc校验

解析该以太网帧,包括统计该以太网帧长度+过滤功能(端口号对不对,是否为udp协议)+CRC校验,将解析结果存入状态fifo,一旦状态fifo开始有数,就开始开启读过程,读过程开始时,首先读状态fifo,根据从状态fifo里面读出的以太网帧长度,来读数据fifo(这样能够防止跨帧读),然后在根据状态fifo里面读出的crc校验正确标志和过滤标志,来确定是否将数据fifo读出来的数据送给下一个模块。改掉之后在抓一下,可以看到抓出来的数据完全正确,从最后开始看,除去4个crc校验的尾巴,数据是到255结束的。

weixin_45284871的博客 2738

js 非构造函数的继承 object()方法

$(document).ready(initPage); function initPage() { var Doctor = object(Chinese); Doctor.career = '医生'; alert(Doctor.nation+Doctor.career); //中国 } fun

小小程序猿 394

RealSense D435i深度相机实战:从像素坐标到三维空间的精准映射(Python实现)

本文详细介绍了使用RealSense D435i深度相机实现从二维像素坐标到三维空间坐标精准映射的两种Python实战方法:深度图反投影法与点云直接查找法。文章涵盖环境搭建、相机对齐、代码实现、性能对比及与YOLO等检测模型结合的进阶应用,并提供了关键的避坑指南和参数调优建议,帮助开发者在机器人、三维重建等项目中高效应用。

weixin_29291573的博客 382

javascript 对象继承

<br />Javascript的继承有两种。一种是基于"函数对象"的继承,也就是一个function去继承另外一个function,这个我已经在昨天介绍过了。<br />另一种则是基于"非函数对象"的继承,不涉及function。它的做法与前一种情况完全不同。<br />一、什么是"非函数对象"的继承?<br />比如,现在有一个对象,叫做"中国人"。<br />  var Chinese = {<br />    nation:'中国'<br />  };<br />还有一个对象,叫做"医生"。<br

loehuang的专栏 968

系统磁盘从MBR格式转换成GPT格式来升级win11

之前的《》中说到,需要把磁盘格式转化为MBR格式才能执行下去。问题是,win10升级win11要求启动方式为UEFI的话,磁盘格式不能为MBR。其实不升级也不影响啥,但是就是想好看点。所以花了点时间折腾了一下。我这是双系统,所以直接去A系统修复B系统的磁盘格式和引导。

qq_42520962的博客 9041

告别Vysor!用Scrcpy在Mac上无线投屏安卓手机(附魅族16th闪退修复实战)

本文详细介绍了如何在Mac上配置和使用开源投屏工具Scrcpy,实现安卓手机无线投屏的高效解决方案。从基础环境准备到高级功能调优,包括无线连接配置、输入控制增强、多设备管理和性能优化等实用技巧,特别针对魅族16th等机型的闪退问题提供了修复方案,帮助用户彻底告别Vysor等商业软件。

weixin_28712661的博客 394

用object( )方法实现非构造函数的继承

    非构造函数继承即不使用构造函数实现继承,让一个对象继承另一个对象: var parent = { surname : '张' } var child = { first_name : '小凡' }     如上,两个普通的对象,无法使用构造函数方法实现继承,想实现继承,我们可以使用json格式的发明人Douglas  Crockford提出的一个...

iteye_919的博客 215

Android Termux 安装Kali Linux 或 kali Nethunter史诗级详细教程

Termux 安装kali

风云小虾米的博客 6万+

非构造函数的继承--笔记

http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html提问:普通对象如何实现继承 方法一:object()方法var Chinese = {  nation:'中国' }; //object()函数,其实只做一件事,就是把子对象的prototype属性,指向父对象,从

RecordStudy 342

科研党必备:Zotero+Deepseek 打造AI文献阅读助手(附详细插件配置指南)

本文详细介绍了如何利用Zotero和Deepseek打造AI文献阅读助手,提升科研效率。从Zotero基础安装到中文文献处理插件茉莉花的配置,再到Deepseek API的集成与模型选择策略,全面覆盖了AI辅助阅读的关键环节。特别适合需要高效管理海量文献的科研工作者,显著提升文献筛选和分析速度。

backprop5master的博客 423

机器人关节电机发热难题:从工程化角度拆解热管理解决方案(下)

摘要:本文系统分析了机器人关节电机与驱动系统的热管理方案,重点解决局部热点问题。针对不同功率场景提出了热管/均热板散热(适用于中小功率)和液冷散热(适用于高功率)的具体实施方案,详细比较了结构参数、材料选择、安装工艺和散热效果。特别强调了电机-驱动协同热管理的重要性,提出"工况联动+热路径共享"的核心理念,包括一体化散热结构设计和动态控制策略。最后介绍了热仿真与测试验证方法,确保方案的有效落地。通过系统级热管理,可显著降低温升(热点区域降温30-60℃),同时优化体积和能耗。

bother3000的博客 3329

非构造函数的继承 深拷贝

$(document).ready(initPage); function initPage() { Doctor = deepCopy(Chinese); var list = Doctor.birthPlaces; var arrayList = new Array(); fo

小小程序猿 333

最适合入门的100个深度学习项目

本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 12万+

javascript中对象的继承方式

/一定要注意顺序问题,就是继承一定要在创建实例之前,这样才能继承到其相应的属性//错误写法//正确写法的作用时将Man原型对象指向了Person的实例该行代码的作用:1.由于每一个对象的原型prototype都有一个默认的constructor属性,该属性指向其构造函数;由于当我执行了原型继承时,即Man.prototype = new Person();,那么构造函数Man的原型便执行了Person。

2401_86962969的博客 1043

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

javascript 继承

javascript ES5 并没有所谓class 类,所以自然不能像c++,Java 那样子类继承父类,但是javascript还是可以实现继承的。 主要的继承方式分为构造函数继承和非构造函数继承 一、构造函数继承 构造一个原型函数,将需要定义的属性方法,通过指定 this 指向赋值;通过 new 方法实例化对象 1 function Person(name,sex,age,...

weixin_30295091的博客 83

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

js实现继承

一、使用构造函数实现"继承  参考:Javascript面向对象编程(二):构造函数的继承  function extend(Child, Parent) {    var F = function(){}; //利用空对象作为中介 F是空对象,所以几乎不占内存。     F.prototype = Parent.prototype;     Child.prototype ...

weixin_30363817的博客 69

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

javascript继承只有一种实现方式

只做总结,具体概念可以看我引用的博客文章。 引用: 1. 空对象中介继承 优点: 空对象不占内存 修改子对象的constructor不会改变父对象的constructor 缺点: isPrototypeOf、instanceof属性无效,需要通过备用属性uber来完成了。(可参考下方的小栗子一号) 实现: function extend(child,parent){ // pare...

a519991963的专栏 189

JavaScript学习总结(二十)——Javascript非构造函数的继承

一、什么是"非构造函数"的继承?   比如,现在有一个对象,叫做"中国人"。 1 var Chinese = { 2   nation:'中国' 3 };   还有一个对象,叫做"医生"。 1 var Doctor ={ 2   career:'医生' 3 }   请问怎样才能让"医生"去继承"中国人",也就是说,我怎样才能生成一个"中国医生"的对象?   这里要注意,

IT_LOSER的专栏 309

JS 常见的 6 种继承方式

继承可以使得子类别具有父类的各种方法和属性。先思考几个问题: JS 的继承到底有多少种实现方式呢? ES6 的 extends 关键字是用哪种继承方式实现的呢? 一、JS 实现继承的几种方式 第一种:原型链继承 原型链继承是比较常见的继承方式之一,其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型对象,原型对象又包含一个指向构造函数的指针,而实例则包含一个原型对象的指针。 function Parent1() { this.n

jatej 2万+

js继承的几种实现方式

js有几种经典的继承方式。比如原型链继承、构造函数继承、组合继承、寄生组合继承、ES6继承。让我们一一分析并实现。同时了解每种方案的优缺点。 文章目录1.原型链继承优点缺点2.构造函数继承优点缺点3.组合继承优点缺点4.寄生组合继承优点缺点5.ES6继承 其实js的继承本质上是通过原型链机制实现的扩展。不管是哪种继承方式,都是通过操作父类原型链和子类原型链形成关联关系实现的。只是不同实现中需要考虑不同的问题。在实际项目开发中,建议尽可能使用ES6的class extends实现。其他实现方式主要是理解背后的

A-Select ° 3130

【JS继承】常见的7种继承方式

一、原型式继承核心:将父类的实例作为子类的原型。 优点:父类方法可以复用。缺点:父类的引用属性会被所有子类实例共享子类构建实例时不能向父类传递参数二、构造函数继承核心:将父类构造函数的内容复制给了子类的构造函数。这是所有继承中唯一一个不涉及到prototype的继承。 优点:和原型链继承完全反过来父类的引用属性不会被共享子类构建实例时可以向父类传递参数缺点:父类的方法不能复用,子类实例的方法每次都是单独创建的。三、组合继承核心:原型式继承和构造函数继承的组合,兼具了二者的优点。 优点:父类的方法

吉帅振博客 4949

JavaScript继承方式全解析

继承方式优点缺点适用场景原型链继承实现简单,共享原型方法引用类型共享,无法传参简单继承,无引用类型属性构造函数继承避免引用类型共享,可传参无法继承原型方法仅需继承实例属性组合继承继承完整,无共享问题父类构造函数调用两次需继承完整功能寄生组合继承性能最优,避免重复调用代码复杂高性能场景ES6 Class 继承语法简洁,支持super依赖 ES6 环境现代 JavaScript 开发混入继承灵活组合多对象功能,实现多继承命名冲突,破坏封装性。

2501_92321148的博客 1787

【JavaScript】js中的原型继承

js中的原型继承

南栀的博客 3705

[JavaScript]js有哪些继承方式

js继承的方法 想要继承,就必须先提供一个父类,这里以Person来作为父类举例 function Person(name){//给构造函数添加了参数 this.name=name; this.sex="male"; this.say=function(){ console.log(this.name); } } Person.pr

DaftJayee的博客 501

JavaScript中继承方式详解

博文中介绍了JavaScript中实现继承的几种方式,详细介绍了其中的原型链、借用构造函数、组合继承以及原型式继承。

诗渊的博客 4960

js中构造函数的继承

js 构造函数的继承例子学习

进一步,有一步的欢喜。 2711
上一篇: Javascript的原型继承(原型prototype机制和apply和call方法)
下一篇: AMD(Modules/Asynchronous-Definition)、CMD(Common Module Definition)的区别
Keyboard_Handler
博客等级 码龄10年 0粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值