js继承 - 构造函数继承,call apply改变this指向 原型链继承,混合继承

ANSYS Workbench瞬态结构分析(1)时域分析 本文围绕瞬态结构分析展开。首先阐释其概念与理论基础,涵盖控制方程及数值求解方法。接着详述在 ANSYS Workbench 中进行瞬态分析的操作流程,以音叉为例,介绍从创建分析系统、材料定义、几何处理与网格划分,到边界条件与载荷设置、求解器设置及结果后处理的各步骤。之后对分析结果进行探讨,并针对计算不收敛、计算时间过长等常见问题给出调试技巧,旨在为读者提供全面的瞬态结构分析知识与实践指导。 阅读详情

1、构造函数继承

function Person(name,age){
		this.name = name;
			this.age = age;
			this.run = function(){
				console.log('跑....');
			}
		}
		function YPerson(name,age,color){
			this.method = Person;//this.method指向Person所指向的构造函数Person
			this.method(name,age); //执行this.method方法,即执行Person所指向的函数  YPerson就继承了Person的所有的属性和方法
			
			this.color = color;
		}
		var res = new YPerson('小王',18,'yellow');
		res.run();  //跑....

本质是在子类中,调用父类构造函数,从而让子类拥有父类的属性和方法

2、call/apply方法

all和apply都是为了改变某个函数运行时的context即上下文而存在的,换句话说,就是为了改变函数内部this的指向。
二者作用完全一样,只是接受参数的方式不太一样。

call方法是Function类中的方法接受2个参数
call方法的第一个参数的值赋值给类(即方法)中出现的this
call方法的第二个参数开始依次赋值给类(即方法)所接受的参数

apply方法接受2个参数,
第一个参数与call方法的第一个参数一样,即赋值给类(即方法)中出现的this
第二个参数为数组类型,这个数组中的每个元素依次赋值给类(即方法)所接受的参数

function Person(name,age){
		this.name = name;
			this.age = age;
			this.run = function(){
				console.log('跑....');
			}
		}
		function YPerson(name,age,color){
//			Person.call(this,name,age);  //call
			Person.apply(this,[name,age]);	//apply
			this.color = color;
		}
		var res = new YPerson('小王',18,'yellow');
		res.run();  //跑....
		console.log(res);

3、原型链继承
对象的属性和方法,有可能定义在自身,也有可能定义在它的原型对象。由于原型本身也是对象,又有自己的原型,所以形成了一条原型链

function Box() { //Box构造函数
		this.name = '小王';
		}
		function Desk() { //Desk构造函数
			this.age = 18;
		}
		Desk.prototype = new Box(); //Desc继承了Box,通过原型,形成链条
		var desk = new Desk();
		console.log(desk.name);//小王  得到继承的属性

原型链继承个原理:
将一个构造函数的原型指向另一个构造函数的实例对象来实现继承。

4、混合继承

function Box(age) {
		this.name = '小王';
			this.age = age;
		}
		Box.prototype.run = function() {
			return this.name + this.age;
		};
		function Desk(age) {
			this.method = Box;//this.method指向Person所指向的对象函数。
			this.method(age);//执行this.method方法,即执行Person所指向的函数  YPerson就继承了Person的所有的属性和方法     构造函数继承    继承age 属性
		}
		Desk.prototype = new Box(); //原型链继承   run方法
		var desk = new Desk(18);
		console.log(desk.run());//小王18
5分钟搞定Nano-Banana图片编辑API对接:从Base64编码到生成图片全流程 本文详细介绍了如何快速对接Nano-Banana图片编辑API,基于gemini-2.5-flash-image-preview模型,从环境准备、Base64编码到API调用的全流程。通过实战示例和优化技巧,帮助开发者高效集成AI图片处理能力,提升产品竞争力。 阅读详情

相关推荐

震坤行:企业 MRO 物料标准化革新之路

那产生这些问题的原因是什么呢?要想解决此问题,企业高层必须下定决心对历史数据进行梳理,并善于利用信息技术,融合企业管理的流程机制,建立起一套适合企业发展的物料标准化管理体系,循序渐进,逐步规避由物料不规范带来的管理问题,最终使得这套标准化体系能够满足企业多元化业务发展需要。国内某电子制造头部企业原先内部物料无对应分类,仅有物料编码,给企业对采购、领料的过程中造成极大的不变,基于震坤行的目录结构,预测物料对应的分类,预测准确率达到80%以上,再辅以人工校正,最终搭建起一套标准的目录体系,如图2.2所示。

carson99的博客 421

前端面试题(第二弹)——js继承(call、apply、bind详解)

js的继承方式,包括对call()、apply()、bind()方法的详解...

iiiiiiiice的博客 483

最优化方法 25:PDHG

前面的章节要么从原始问题出发,要么从对偶问题出发,通过求解近似点或者一个子优化问题进行迭代,而且推导过程中我们发现根据问题的参数特征,比如矩阵 AAA 是瘦高型的还是矮胖型的,采用对偶和原始问题的复杂度会不一样,可以选择一个更简单的。而这一节,我们将要从原始对偶问题出发来优化,什么是原始对偶问题呢?就是原始优化变量和对偶优化变量(原始函数和共轭函数)混合在一块,看下面的原理就知道了。 1. 原始对偶问题 现在考虑原始优化问题,其中 f,gf,gf,g 为闭凸函数 min⁡f(x)+g(Ax) \min \q

Glooow的博客 4604

改变this指向

JavaScript中改变this指向的方法

m0_72030584的博客 1033

Qt上位机实战:5步搞定STM32 IAP固件升级(附拖拽文件处理技巧)

本文详细介绍了如何使用Qt开发STM32 IAP固件升级上位机。通过五个核心步骤,包括理解IAP机制、搭建Qt环境、实现拖拽文件加载、封装串口通信以及设计可靠通信协议,帮助开发者快速构建一个稳定、易用且支持图形化操作的固件升级工具,显著提升嵌入式产品开发与维护效率。

ss78901的博客 1082

别再为CAD和GIS数据对不上而头疼了!一份完整的ArcGIS for AutoCAD坐标系定义与数据套合指南

本文详细介绍了如何通过ArcGIS for AutoCAD插件解决CAD与GIS数据坐标系不匹配的问题,实现数据的精准套合。文章从坐标系冲突分析、插件核心功能解析到五步标准化工作流,提供了完整的解决方案,帮助工程师和设计师提升跨平台协作效率。

weixin_42531886的博客 217

一个构造函数继承另一个构造函数的原型方法

方法1 function Person() { } function Hello() { } Person.prototype.name = "lily"; Hello.prototype = Person.prototype; console.log(Person.prototype); console.log(Hello.prototype); 这样的继承方式很简单,...

6块腹肌的博客 856

【人工智能】《Deep Dive into LLMs like ChatGPT 》—— Andrej Karpathy 第三阶段:强化学习(Reinforcement Learning, RL)

摘要:强化学习(RL)阶段通过让模型自主生成并验证答案,突破SFT阶段的模仿局限,使其在数学、代码等领域形成独特的推理路径。RL流程包括批量生成解答、自动批改筛选正确路径,并采用PPO/GRPO算法优化模型。模型会自发涌现自我检查、回滚等策略,显著提升正确率(如AIME竞赛准确率从15%升至56%)。与SFT模型相比,RL模型具备主动链式思维、验算能力,响应时间更长但效果更优,形成真正的“思考模型”。三阶段对比显示,RL通过可验证题的对错奖励机制,赋予模型超越人类范式的推理能力。

奶爸的编程之路,也就一周冷个三天 150

JavaScript中的构造函数、原型和实例

1.原型模式: 每个函数都会创建一个prototype属性,这个属性是一个对象,包含应该由特定引用类型的实例共享的属性和方法。实际上,这个对象就是通过构造函数创建的对象的原型。 使用原型对象的好处是,在它上面定义的的属性和方法可以被对象实例共享。原来在构造函数中直接赋给对象实例的值,可以直接赋值给它们的原型,如下所示: function Person(){} // 原型上创建的属性和方法,可以被对象实例共享 Person.prototype.name='maria

weixin_45803990的博客 1763

车辆网络安全ISO/SAE 21434解读(一)概述

ISO/SAE 21434 《道路车辆 网络安全工程》是SAE和ISO共同制定的一项针对道路车辆的网络安全标准,它是一个面向汽车行业全供应链(OEM及各级供应商)的车辆网络安全管理指导文件

xiaoxiabang的博客 8427

如何完全卸载axure软件以及解决安装axure后打不开的问题【2023年】

如何完全卸载axure软件以及解决安装axure后打不开的问题【2023年】

念兮为美 5140

jQuery前端面试题+笔试题+练习题(1)

1.不属于同源策略限制条件的 A 端口 B 协议 C 域名 D 网址 正确答案: D 2.不属于常见23种设计模式 A 单例 B MVC C 观察者 D 策略 正确答案: B 3.对于js闭包的理解,以下说法错误的是 A 一个闭包就是当一个函数返回时,一个没有释放资源的栈区 B 闭包能够访问一个函数中的局部变量 C 闭包使用不当会造成内存泄露 D 闭包需定义在匿名函数里 正确答案: D 解析:闭包...

Norah_Yang的博客 7185

2025电赛嵌入式:K210教程-如何刷固件 如何烧录代码 全网唯一

本文介绍了K210开发板的固件刷写和开发环境搭建方法。主要内容包括:1)从Sipeed官网下载合适的MaixPy固件,根据需求选择完整版或精简版;2)使用k-flash等工具烧录固件,注意区分亚博和Sipeed开发板的固件版本;3)介绍了擦除闪存的两种模式(部分擦除和完全擦除)及其应用场景;4)搭建CanMV开发环境,通过MaixPy IDE连接开发板并进行程序调试。文章还提供了常见问题的解决方法,如串口驱动安装、固件兼容性检查等,为K210开发提供了完整的入门指南。

FJN110的博客 547

JS篇 (二)原型、原型链和继承

2)当访问一个对象的某个属性时,会先在这个对象本身属性上找,若未找到则会通过_proto_隐式属性找到它的构造函数的原型对象。b.使用extends和super两个关键字,在子类的constructor方法中调用super,用来继承父类的this对象;b.子类所有实例共用父类属性没有自己的属性,一个实例改变了父类引用类型的值,所有实例都会改变;d.创建子类时无法向父类构造函数传参。d.实例可以继承父类实例的属性方法,也可继承原型链上的属性和方法;b.只能继承父类的实例属性和方法,不能继承父类原型上的方法;

qianmo0330的博客 647

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JS继承三种方式的理解prototype, call/apply, 混用

首先,需要统一一个知识点 new一个对象的四个过程 1、创建一个空对象 1 var obj = new Object(); 2、让Person中的this指向obj,并执行Person的函数体 1 var result = Person.call(obj); 3、设置原型链,将obj的__proto__成员指...

ycs_1993的博客 241

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

js继承有5种实现方式,你知道几种?

js继承有5种实现方式: 1、继承第一种方式:对象冒充   function Parent(username){     this.username = username;     this.hello = function(){       alert(this.username);     }   }   function Child(username,password){

黄沙百战穿金甲,不破楼兰终不还。 9046

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【JavaScript】call与apply兄弟列传

【JavaScript】call与apply兄弟列传 在JavaScript中,有这么俩货,一个叫call,一个叫apply,它们俩工作几乎一毛一样,但是也有所区别,曾经对这个知识点非常困惑,看过几篇博客也没搞清楚这哥俩到底打算要干个啥,直到某天仔细研究过this关键词的相关知识点后,才恍然大悟, 这篇文章主要就是为call和apply兄弟俩写“人物传记”,希望能帮助到其他对这个问

SinanTitan的博客 352

JavaScript 的对象继承方式,有几种写法?

一、对象冒充 其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式)。因为构造函数只是一个函数,所以可使 Parent 构造函数 成为 Children 的方法,然后调用它。Children 就会收到 Parent 的构造函数中定义的属性和方法。例如,用下面的方式定义 Parent 和 Children: 原理:就是把 Parent 构造函数放到 Child...

张飞鹏的博客 251

JavaScript 继承(原型链,对象冒充)

一、对象冒充 <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> </head> <body>...

Ich/liebe/dich的编程せかい 185

关于js种继承的六种实现方法以及其优缺点

//实现继承的几种方式 //第1种方式 使用call或者apply方法改变this指向 //缺点:虽然改变了this的指向但是Child构造函数并不会指向Parent的原型链 let Parent1 = function(){ this.name = 'name' } Parent1.prototype.say=function(){console.log('say')} let Child...

qq_41398471的博客 177

JS 进阶(3) ECMAScript5 — 面向对象:对象声明,对象遍历,闭包与封装,继承(原型继承、构造继承、call和apply继承),关键字(delete、this)

一、基本介绍 二、闭包 一:闭包的概念? js高程:闭包是有权访问另一个函数作用域中的变量的函数,常见的方式就是在一个函数内部 再创建一个函数。我的理解是能够读取其他函数内部变量的函数。 二:闭包的用途? 1.防止过多的全局变量,改成局部变量来定义。 2.外部函数始终在内存里不会被回收只有内部函数(闭包)被销毁后才被销毁。 三:闭包的优缺点? 1.优点:有利于封装代码,访问局部变量。 2.缺点:内...

weixin_39141044的博客 470

探究JavaScript中的继承

  在开始讲继承之前,我们首先来了解一下JavaScript中关于构造函数、原型和原型链的一些知识,因为JavaScript是中的继承和这几者之间息息相关。 一、构造函数、原型和原型链的三角关系   首先来看一段简单的代码: //构造函数Foo function Foo(name) { this.name = name; }; //Foo的原型对象prototype中的方法 Foo.pr...

weixin_34122810的博客 146

Javascript继承实现方式

1.对象冒充方式:   a.能够实现多继承   b.子类的新属性及新方法必须在父类对应的临时方法执行及删除后才能够添加,否则会被父类覆盖。   c.只能继承通过构造函数this.方式定义的属性及方法,不能继承通过原型方式prototype.定义的属性及方法   d.不能使用instanceof来检验子类对象与父类的关系。 function ClassA(){    this.prop1

去山中嘘嘘 753

JavaScript继承全解析:从原型链到ES6 Class的实战指南

在面向对象编程中,继承是实现代码复用和构建层次化类型体系的核心机制。其原理基于原型链,通过对象之间的委托关系,使子类能够获取父类的属性和方法。这一机制在JavaScript中尤为重要,它直接关系到代码的组织结构、内存使用效率以及应用的可维护性。从早期的原型链继承、构造函数继承,到经典的组合继承,再到更优的寄生组合式继承,每种模式都针对特定场景提供了不同的技术价值。例如,组合继承结合了原型链和构造函数的优点,成为ES5时代的通用方案;而寄生组合式继承则通过优化原型链的构建方式,解决了父类构造函数被重复调用的问

weixin_34327761的博客 392

彻底搞懂 JavaScript 继承:从原型链到 ES6 class 底层原理

在 JavaScript 中,继承的本质不是复制,而是对象之间通过原型链建立的委托关联。理解 prototype、__proto__ 与 constructor 的三角关系,是掌握一切继承方案的基础。从原型链继承到构造函数继承,再到组合继承与寄生组合式继承,每种方式都有其适用场景与固有缺陷。ES6 class 继承看似优雅,本质仍是基于原型链的语法糖,super 的调用顺序与 this 初始化机制更是面试高频考点。同时,对比 C++、Dart 等语言的继承差异,可以帮助开发者更清晰地界定继承与组合的边界。在

weixin_34294649的博客 690

js继承

继承 prototype属性 当我们在类中定义方法的时候,这个方法在每次创建实例对象的时候,都会被调用,开辟新的内存空间,则会导致内存消耗很大,因此我们可以将这个类具有的方法放在原型对象上(prototype) 当我们修改原型上的属性的时候,就相当于在给该实例添加了一个这个属性 可以通过delet function Person(newId,newName){ this.id=newId; this.name=newName; // this.e

qq_43373622的博客 202
上一篇: js闭包
下一篇: nodejs express 框架 上传图片,上传头像问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值