图片下载网站哪个好/如何做seo优化

图片下载网站哪个好,如何做seo优化,网页设计师的岗位职责,wordpress 建站 教程在 JavaScript 中,继承主要通过原型链实现,常见的继承方式有以下几种,每种方式都有其优缺点: 1. 原型链继承 1. 实现方式:将子类的原型对象指向父类的实例。 function Parent() {} function Child() {} Child.protot…

在 JavaScript 中,继承主要通过原型链实现,常见的继承方式有以下几种,每种方式都有其优缺点:


1. 原型链继承

1. 实现方式:将子类的原型对象指向父类的实例。

function Parent() {}
function Child() {}
Child.prototype = new Parent();

2. 优点:简单直观,能继承父类原型上的属性和方法。

3. 缺点

(1). 所有子类实例共享父类的引用类型属性,修改一个实例会影响其他实例;

(2). 无法向父类构造函数传递参数,即子类实例化时无法定制父类属性;


2. 构造函数继承

1. 实现方式:在子类构造函数中调用父类构造函数。

function Parent(name) { this.name = name; }
function Child(name) { Parent.call(this, name); }

2. 优点

(1). 解决了引用类型属性共享的问题,使得每个实例独立;

(2). 支持向父类构造函数传递参数;

3. 缺点:无法继承父类原型上的方法,方法只能在构造函数中定义,导致重复创建函数,浪费内存;


3. 组合继承(经典继承)

1. 实现方式:结合原型链继承和构造函数继承;

function Parent(name) { this.name = name; }
function Child(name) { Parent.call(this, name); }
Child.prototype = new Parent();
Child.prototype.constructor = Child;

2. 优点

(1). 既能继承父类实例属性,又能继承父类原型方法;

(2). 引用类型属性不共享,支持传参;

3. 缺点:父类构造函数被调用两次,分别为Parent.call 和 new Parent(),导致子类原型对象中多出一份冗余属性;


4. 原型式继承

1. 实现方式 :基于已有对象创建新对象,类似 Object.create

const parent = { name: "Parent" };
const child = Object.create(parent);

2. 优点:适用于不需要单独构造函数的场景,直接基于对象继承;

3. 缺点:引用类型属性会被所有实例共享,这一点与原型链继承相同;


5. 寄生式继承

1. 实现方式:在原型式继承的基础上增强对象。

function createChild(parent) {const obj = Object.create(parent);obj.sayHi = function() { console.log("Hi"); };return obj;
}

2. 优点:可以在不修改原对象的情况下扩展新方法;

3. 缺点:方法在每次创建实例时重复定义,效率低;


6. 寄生组合式继承(最优解)

1. 实现方式:通过寄生式继承父类原型,避免调用父类构造函数;

function Parent(name) { this.name = name}
function Child(name) { Parent.call(this, name)}Child.prototype = Object.create(Parent.prototype);
prototype.constructor = Child;

2. 优点

(1). 解决了组合继承中父类构造函数被调用两次的问题,性能最优;

​​​​(2). 完美实现原型链继承,且引用类型属性不共享;

3. 缺点:实现稍复杂;


7. ES6 class 继承

1. 实现方式:使用 extends 和 super 关键字;

class Parent {constructor(name) {this.name = name;}
}
class Child extends Parent {constructor(name) {super(name);}
}

2. 优点

(1). 语法简洁,符合传统面向对象语言的写法;

(2). 底层基于寄生组合式继承,是最佳实践的语法糖;

3. 缺点:需要环境支持 ES6+


8. 总结对比

推荐使用:现代开发中优先使用 ES6 class 继承。兼容旧环境时使用 寄生组合式继承。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解指针(3)(C语言版)

文章目录 前言 一、字符指针变量二、数组指针变量2.1 数组指针变量是什么2.2 数组指针变量怎么初始化2.2.1 静态初始化2.2.2 动态初始化 三、二维数组传参的本质四、函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 typedef关键字4.4拓展 五、函数指针数组六、转…

csp信奥赛C++常用的数学函数详解

csp信奥赛C常用的数学函数详解 在信息学奥林匹克竞赛&#xff08;信奥赛&#xff09;中&#xff0c;C 的 <cmath> 头文件提供了丰富的数学函数&#xff0c;用于高效处理数学运算。以下是常用系统数学函数的详细讲解及汇总表格。 绝对值函数 int abs(int x)&#xff1a;返…

ChatDBA VS DeepSeek:快速诊断 OceanBase 集群新租户数据同步异常

社区王牌专栏《一问一实验&#xff1a;AI 版》改版以来已发布多期&#xff08;51-60&#xff09;&#xff0c;展现了 ChatDBA 在多种场景下解决问题的效果。 下面让我们正式进入《一问一实验&#xff1a;AI 版》第 62 期&#xff0c;看看 ChatDBA 最新效果以及与热门大模型 De…

oracle数据库(数据库启动关闭/sqlplus登录及基本操作/设置字符集/distinct去重)

目录 1. Oracle数据库启动 2. Oracle数据库关闭 3. sqlplus登录Oracle数据库 3.1 使用sqlplus登录Oracle数据库 3.2 使用sqlplus登录Oracle数据库 3.3 远程登录 3.4 解锁用户 3.5 修改用户密码 3.6 查看当前语言环境 4. sqlplus基本操作 4.1 显示当前用户 4.2 查看当前用户…

Java 大视界 -- Java 大数据在智能金融区块链跨境支付与结算中的应用(154)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

在Cesium中使用ThreeJs材质(不是场景融合哦)

在Cesium中使用ThreeJs材质(不是场景融合哦&#xff09;_哔哩哔哩_bilibili

给Web开发者的HarmonyOS指南02-布局样式

给Web开发者的HarmonyOS指南02-布局样式 本系列教程适合鸿蒙 HarmonyOS 初学者&#xff0c;为那些熟悉用 HTML 与 CSS 语法的 Web 前端开发者准备的。 本系列教程会将 HTML/CSS 代码片段替换为等价的 HarmonyOS/ArkUI 代码。 布局基础对比 在Web开发中&#xff0c;我们使用CS…

京东软件测试岗位经典面试题(附答案)

1、黑盒测试的测试用例常见设计方法都有哪些&#xff1f;请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 1&#xff09;等价类划分&#xff1a;等价类是指某个输入域的子集合.在该子集合中&#xff0c;各个输入数据对于揭露程序中的错误都是等效的.并合理地假…

3.26[a]paracompute homework

5555 负载不平衡指多个线程的计算量差异显著&#xff0c;导致部分线程空转或等待&#xff0c;降低并行效率。其核心矛盾在于任务划分的静态性与计算动态性不匹配&#xff0c;尤其在处理不规则数据或动态任务时尤为突出。以稀疏矩阵的向量乘法为例&#xff0c;假设其非零元素分…

帕金森患者的生活重塑:从 “嘴” 开启康复之旅

当提到帕金森病&#xff0c;许多人会联想到震颤、僵硬和行动迟缓等症状。这种神经系统退行性疾病&#xff0c;给患者的生活带来了巨大的挑战。然而&#xff0c;你可知道&#xff0c;帕金森患者恢复正常生活&#xff0c;可以从 “嘴” 开始管理&#xff1f; 帕金森病在全球影响着…

Android14 Settings应用添加有线网开关条目实现

Android14 Settings应用添加有线网开关条目 文章目录 Android14 Settings应用添加有线网开关条目一、前言二、适配修改1、network_provider_settings.xml2、NetworkProviderSettings.java3、TurnOnOffEthernetNetworkController.java4、去除有线网提示条目。5、效果UI&#xff…

Axure RP设计软件中的各种函数:包括数字、数学、字符串、时间及中继器函数,详细解释了各函数的用途、参数及其应用场景。

文章目录 引言函数分类数字函数数学函数字符串函数时间函数函数中继器函数引言 在axure交互设计时,函数可以用在条件公式和需要赋值的地方,其基本语法是用双方括号包含,变量值和函数用英文句号连接。 在交互事件编辑器中通过fx按钮插入函数表达式,例如设置文本内容为: …

c#难点整理3

1.静态类的说明 a.静态类里不能定义实例方法&#xff0c;实例属性&#xff0c;所以说非静态类是无法继承静态类的。父类无法拥有实例化的方法和属性&#xff0c;子类可以&#xff0c;这从逻辑上是矛盾的&#xff0c;不符合继承的逻辑。 b.那么静态类与静态类之间能否继承能呢…

Win11+VS2022+CGAL5.6配置

1. CGAL库简介 CGAL&#xff08;Computational Geometry Algorithms Library&#xff09;是一个开源的计算几何算法库&#xff0c;主要用于处理几何问题和相关算法的实现。它提供了丰富的几何数据结构和高效算法&#xff0c;覆盖点、线、多边形、曲面等基本几何对象的表示与操…

手搓全自动文章多平台发布系统:5、跨页面接入playwright类,修改ui_components.py,整合到main.py

昨天已经要多上下文,单上下文的模块中测试成功了,今天要想法接入。 整理完成的所有代码如下: 结构如图: main.py import sys from PyQt6 import QtWidgets from modules.ui_components import TableManager # 导入界面类 import asyncio# 在主函数中使用 qasync 整合事…

涨薪技术|使用Dockerfile创建镜像

上次的推文内容中介绍了如何使用docker commit的方法来构建镜像&#xff0c;相反推荐使用被称为Dockerfile的定义文件和docker build命令来构建镜像。Dockerfile使用基本的基于DSL语法的指令来构建一个Docker镜像&#xff0c;之后使用docker build命令基于该Dockerfile中的指令…

成都国际数字影像产业园:打造数字影像产业新高地

成都国际数字影像产业园&#xff1a;打造数字影像产业新高地 成都国际数字影像产业园正致力于构筑数字影像产业的新高地&#xff0c;成为推动区域数字经济发展的重要引擎。 核心定位与目标 该园区精准定位于数字影像文创产业&#xff0c;旨在打造集内容创作、技术研发、人才…

各类神经网络学习:(三)RNN 循环神经网络(中集),同步多对多结构的详细解释

上一篇下一篇RNN&#xff08;上集&#xff09;RNN&#xff08;下集&#xff09; 同步多对多结构 1&#xff09;结构详解 ①图解&#xff1a; ②参数含义&#xff1a; x t x_t xt​ &#xff1a;表示每一个时刻的输入&#xff1b; o t o_t ot​ &#xff1a;表示每一个时刻的输…

【嵌入式学习2】C语言 - VScode环境搭建

目录 ## 语言分类 ## c语言编译器 ## VScode相关配置 ## 语言分类 编译型语言&#xff1a;C&#xff0c;C解释型语言&#xff1a;python&#xff0c;JS ## c语言编译器 分类GCC 系列MinGWCygwinMSVC系列一套编程语言编译器将GCC编译器和GNU Binutils移植到Win32平台下的产物…

qt+opengl 加载三维obj文件

1前面我们已经熟悉了opengl自定义顶点生成一个立方体&#xff0c;并且我们实现了立方体的旋转&#xff0c;光照等功能。下面我们来用opengl来加载一个obj文件。准备我们首先准备一个简单的obj文件&#xff08;head.obj&#xff09;。资源在本页下载 2 在obj文件里面&#xff0c…