TypeScript类前奏之ES5中的类

Node.js 16+升级指南:ESM、OpenSSL 3.0与LTS工程化实践 Node.js 是 JavaScript 运行时的核心基础,其版本演进直接决定现代前端与全栈项目的工程能力边界。从 ES Modules 原生支持到 V8 引擎深度优化,从 OpenSSL 3.0 安全协议升级到 npm/pnpm 对 exports 字段的完整实现,Node.js 16+ 已成为支撑 Next.js、Vite、Astro 等新一代工具链的最低兼容基线。技术价值体现在模块加载性能提升22%、TLS 1.3默认启用、内存占用下降15%以上,广泛应用于微服务API、实时音视频、CI/CD 构建流 阅读详情

TypeScript类

//es5中的类:众所周知,在es5中是用构造函数来定义一个类
function Person () {
  this.name = 'ag'; // 属性
  this.age = 23;
  // 属性方法
  this.run = function () {
    console.log(this.name + '在跑步')
  }
}
// 静态方法
Person.staticWork = function () {
  console.log('静态方法在工作')
}
Person.prototype.sex = '男' // 原型链上属性
Person.prototype.work = function () { // 原型链上方法
  console.log(this.name + '在工作')
}
var person = new Person()
person.run()
console.log(person.age)
Person.staticWork()
person.work()


//es5中的继承:原型链+对象冒充的组合继承模式
function Student(){
    Person.call(this);
}

var student = new Student();
student.run();//对象冒充可以继承里面的属性和方法
student.work(); //会报错,对象冒充无法继承原型链上的属性和方法

在es5中对象冒充可以继承构造函数里面的属性和方法,对象冒充无法继承原型链上的属性和方法。

原型链实现继承:

原型链继承
function Person () {
  this.name = 'ag'; // 属性
  this.age = 23;
  // 属性方法
  this.run = function () {
    console.log(this.name + '在跑步')
  }
}
// 静态方法
Person.staticWork = function () {
  console.log('静态方法在工作')
}
Person.prototype.sex = '男' // 原型链上属性
Person.prototype.work = function () { // 原型链上方法
  console.log(this.name + '在工作')
}
var person = new Person()
person.run()
console.log(person.age)
Person.staticWork()
person.work()


//原型链继承模式
function Student(){
 }

Student.prototype = new Person(); //原型链继承
var student = new Student();
student.run();
student.work();
 

在es5中的原型链继承,既可以继承构造函数里面的属性和方法,也可以继承原型链上的属性和方法。

//原型链继承
function Person (name,age) {
  this.name = name; // 属性
  this.age = age;
  // 属性方法
  this.run = function () {
    console.log(this.name + '在跑步')
  }
}
// 静态方法
Person.staticWork = function () {
  console.log('静态方法在工作')
}
Person.prototype.sex = '男' // 原型链上属性
Person.prototype.work = function () { // 原型链上方法
  console.log(this.name + '在工作')
} 


//原型链继承模式
function Student(){
 }

Student.prototype = new Person(); //原型链继承
var student = new Student('赵四',23);
student.run(); 
student.work(); 
//undefined在跑步
//undefined在工作

构造函数实现继承的时候,实例化子类的时候没办法给父类传参.

为了解决以上问题,引出:

原型链+构造函数的组合继承模式

很简单就是将以上两者组合起来

//原型链继承
function Person (name,age) {
  this.name = name; // 属性
  this.age = age;
  // 属性方法
  this.run = function () {
    console.log(this.name + '在跑步')
  }
}
// 静态方法
Person.staticWork = function () {
  console.log('静态方法在工作')
}
Person.prototype.sex = '男' // 原型链上属性
Person.prototype.work = function () { // 原型链上方法
  console.log(this.name + '在工作')
} 


//原型链继承模式
function Student(name,age){
  Person.call(this,name,age); //对象冒充,可以继承构造函数里的属性和方法 
 }

Student.prototype = new Person(); //原型链继承
var student = new Student('赵四',23);
student.run(); 
student.work();
//赵四在跑步
//赵四在工作

原型链+对象冒充的另外一种方式

//原型链继承
function Person (name,age) {
  this.name = name; // 属性
  this.age = age;
  // 属性方法
  this.run = function () {
    console.log(this.name + '在跑步')
  }
}
// 静态方法
Person.staticWork = function () {
  console.log('静态方法在工作')
}
Person.prototype.sex = '男' // 原型链上属性
Person.prototype.work = function () { // 原型链上方法
  console.log(this.name + '在工作')
} 


//原型链继承模式
function Student(name,age){
  Person.call(this,name,age); //对象冒充,可以继承构造函数里的属性和方法 
 }

Student.prototype = Person.prototype; //原型链继承
var student = new Student('赵四',23);
student.run(); 
student.work();
//赵四在跑步
//赵四在工作

原理是将

Student.prototype = new Person();

改为:

Student.prototype = Person.prototype;

就是让他直接继承父类的原型链。这样既可以继承父类的属性和方法,也可以继承父类的原型链。

 

 

 

 

 

Python爬虫实战:采集菜谱网站数据——以“下厨房”为例 随着互联网的发展,海量优质数据为各类应用提供了坚实基础。菜谱作为用户日常生活中需求极高的内容,丰富多样的菜谱数据不仅方便用户烹饪,也为美食推荐、营养分析等研究提供了数据支持。本文将围绕国内知名菜谱网站“下厨房”(https://www.xiachufang.com)展开,结合最新Python爬虫技术,详细讲解如何高效、规范地采集菜谱数据,包括菜谱名称、食材、步骤、评分、评论等丰富信息。全篇覆盖爬虫原理、框架选型、反爬应对、数据存储和简单分析,是学习爬虫实战的绝佳案例。菜谱标题作者信息菜谱图片。 阅读详情

相关推荐

SpringBoot文件上传实战:MultipartFile重复读取的3种方法(附避坑指南)

本文详细介绍了SpringBoot中处理MultipartFile重复读取的3种实用方法,包括字节数组缓存法、临时文件法和流重置法,并提供了避坑指南和性能优化技巧。特别适合需要多次读取上传文件内容的开发者,帮助解决InputStream流只能读取一次的问题。

weixin_28710999的博客 398

小白学Typescript

Typescript介绍 Typescript是由微软开发的一款开源的编程语言 Typescript是Javascript的超集,遵循最新的ES6,ES5规范。Typescript扩展了Javascript的语法。 Typescript安装 编译 安装: 使用npm命令的时候必须先安装node.js npm i -g typescript 或者 cnpm i -g typescript(`cnpm安装:npm install -g cnpm --registry=https://registry.npm

qq_45832807的博客 671

ANSYS MAXWELL内置式永磁同步电机(IPMSM)转矩最大时输入电流相位的确定

1.在转子转速为零时看一个周期内的转矩变化

qq_41752507的博客 6516

TypeScript——TypeScript 之 ts文件在指定es5环境下编译

TypeScript——TypeScript 之 ts文件在指定es5环境下编译

qq_43201350的博客 392

24届-Python面经(华为OD)

【摘要】24届非科班生通过栗栗姐指导成功转行华为OD。从4月4日零基础准备,经历机考(4/18)、测评(4/19)、资格面(5/7)、技术面(5/9-11)到5月17日获offer。全程栗栗姐提供题库、面经指导和实时跟进。虽遇压力面和技术短板,但在专业辅导下10天走完全流程。案例证明转行需自身努力+优质HR支持,栗栗姐团队提供多岗位(Java/Python等)、多地域(北上深等)OD机会,含笔试资料和全流程攻略。

2401_86909848的博客 1188

汇川EASY系列之以太网通讯(套接字socket做主站)

本文讲解汇川Easy系列使用以太网套接字socket通讯,本例中EasyPLC做主站。文中按步进行操作。细节明确。

这是一个长期关注工控行业技术的博客,实现0-1的突破,期待您的关注和留言 2190

ES5和Typescript中的类

title: “ES5和Typescript中的类”

qq_31435455的博客 706

Ardupilot姿态控制详解(完结篇)

本文主要是对过去写的一些APM中姿态控制流程及函数博文的汇总。 按照之前写的博文以及个人认为的学习顺序,给出APM姿态控制器的学习顺序如下: APM姿态旋转理论基础 Ardupilot姿态控制器 PID控制流程(整定后的P控制器) 详解APM的开方控制器sqrt_controller Ardupilot前馈及平滑函数input_euler_angle_roll_pitch_yaw解析 Ardupilot倾转分离函数thrust_heading_rotation_angles Ardupilot四元数姿态控制

moumde的博客 7023

TypeScript入门 (五)异步编程与前后端交互

本文详细介绍了 TypeScript 中的异步编程和网络请求,涵盖了 `async/await`、Promise、Fetch API、Axios 等核心概念,并通过实际案例展示了如何在 Vue 3 + TypeScript 项目中使用 Axios 进行网络请求。文章还讲解了请求拦截器、响应拦截器、跨域处理等高级特性,帮助读者深入理解并应用这些技术。

极限突破者的博客 1666

ETL数据集成案例

一个典型的ETL数据集成案例是将多个来源的数据合并成一个数据集。假设有一个公司,该公司使用一些不同的系统来存储不同部门的数据,例如销售数据存储在一个CRM系统中,财务数据存储在一个ERP系统中,人力资源数据存储在一个HR系统中。为了更好地进行报告和分析,该公司决定将所有这些数据集成到一个数据仓库中。以下是实现这一目标的ETL过程的步骤:提取(Extract):首先,需要从每个系统中提取所需的数据。每个系统可能有不同的数据格式和结构,因此需要编写不同的提取程序或查询来提取数据。

runqu的博客 948

Eclipse邂逅Deepseek:本地化部署全攻略

通过前面一系列的步骤,我们成功地在 Eclipse 中完成了 Deepseek 的本地化部署,并且对部署后的功能进行了测试和优化,还解决了可能遇到的一些常见问题。这一过程不仅让我们体验到了将强大的大语言模型与高效的开发环境相结合的魅力,也为我们在软件开发过程中带来了诸多便利。本地化部署 Deepseek 到 Eclipse,使得我们在代码编写过程中能够获得智能的代码补全和精准的问答支持,大大提高了开发效率。同时,本地化部署保障了数据的安全性和隐私性,避免了数据在传输过程中可能面临的风险。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4509

TypeScript

常用命令 全局安装Typescript命令 npm i typescript –g 查看版本号 tsc -v 初始化配置(解决TS和JS冲突问题) tsc --init 自动编译 tsc --watch 发出错误 tsc --noEmitOnError 跟文件名 TS配置文件 "compilerOptions":{ "target": "es5", 将ts转换为es5 "module": "amd", 将ts模块化转换为amd模块化

是陈哈哈噢 1599

银河麒麟桌面系统 必会操作 | 加装双系统(麒麟桌面系统+Windows系统)的详细方法(含常见故障和解决方法)

装好麒麟桌面操作系统的电脑上、再加装Windows 操作系统的详细方法;和在已经装好Windows系统的电脑上、再加装麒麟桌面操作系统的详细方法;含加装双系统过程中常见问题的解决方法。

qq_33216613的博客 2409

TypeScript常见用法详解(Vue3.0前奏)

TypeScript常见用法详解(Vue3.0前奏) 种一棵树,最好的时候是十年前,其次是现在。TypeScript常见用法详解(Vue3.0前奏)TypeScript简介TypeScript使用TypeScript中的类型注解布尔类型(boolean)数字类型(number)字符串类型(string)数组类型(array)元组类型(tuple)枚举类型(enum)任意类型(any)null 和 undefinedvoid类型never类型TypeScript中的函数TypeScript中的类ts中类的定义

qq_36051044的博客 925

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

搭建Typescript+React项目模板(1) --- 项目初始化

相关文章和阅读顺序 1.项目初始化 2.提升开发体验 3.整理项目和杂项 4.项目打包 5.团队规范 项目地址 目前集成 react - 16.4.x react-router-dom - 4+ mobx - 5+ 状态管理库 typescript - 3.0.x webpack - 4.16.x ant design axios react-loadable 异步组件加载 @svg...

weixin_33946020的博客 462

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LRC歌词制作工具:5分钟学会专业歌词时间轴同步

在数字音乐时代,精准的歌词同步能极大提升听歌体验,但传统的歌词制作过程往往复杂繁琐。LRC Maker(歌词滚动姬)作为一款免费开源的歌词制作工具,通过直观的可视化界面和智能操作方式,让任何人都能轻松创建专业级LRC歌词文件。无论是音乐爱好者制作个人收藏歌词,还是内容创作者开发卡拉OK素材,这款工具都能满足高效、精准的歌词制作需求。 ## 🎯 核心优势:为什么选择LRC歌词制作工具 ###

gitblog_00467的博客 400

终极歌词制作指南:如何使用歌词滚动姬快速制作专业级LRC歌词

歌词滚动姬(LRC Maker)是一款功能强大且免费开源的歌词制作工具,专为音乐爱好者、内容创作者和字幕制作人员设计。这个工具能够帮助您快速创建精准同步的LRC歌词文件,无需复杂设置即可上手使用。在本文中,我将为您详细介绍如何充分利用歌词滚动姬的各项功能,从基础操作到高级技巧,让您轻松制作出专业水准的歌词。 ## 🎯 为什么选择歌词滚动姬? 歌词滚动姬的核心优势在于其极简的设计理念和高效的歌

gitblog_00895的博客 379

Suno Studio 2.0自定义插件直插功能:AI音频生成API集成与工程化实践

API(应用程序编程接口)是现代软件系统间实现数据交换与功能调用的标准化桥梁,其核心原理在于通过预定义的请求与响应格式,实现不同服务或组件间的无缝通信。在AI技术领域,API的价值尤为凸显,它使得复杂的模型能力能够被封装为易于调用的服务,从而赋能各类应用场景,例如内容创作、游戏开发和自动化工作流。Suno Studio 2.0推出的自定义插件直插功能,正是这一理念的典型实践。该功能通过提供标准化的API接口,将Suno AI的音频生成能力从Web界面中解耦,允许开发者将其深度集成到脚本、工具或自动化流程中,

weixin_34175509的博客 329

typescript将ES5转ES6

    今天准备使用typescript的Map,结果发现我的egret项目中不支持,但是typescript的文档中明明写着是有这个类可以使用,结果发现上面有一行小字写着ES6支持,我打开项目中的tyconfig.json文件: { "compilerOptions": { "target": "es5", "outDir": "bin-debug", "experimentalDecorators": true, "lib": [

qq_30095631的博客 1230

使用Webpack打包Typescript ES6项目(转ES5)

目前,ES6标准逐渐成为主流,然而一些旧的浏览器,对于ES6的支持并不十分完善,这时候就需要将ES6转为ES5,以兼容旧的浏览器。Webpack是一个现代 JavaScript 应用程序的静态模块打包器,功能上非常的强大,相关的工具和插件也极其丰富。本文就利用Webpack将Typescript Es6项目编译并打包为JavaScript ES5 Bundle文件。

cswxb的博客 1971

理解 ES5, ES2015(ES6) 和 TypeScript

理解 ES5, ES2015(ES6) 和 TypeScript

PT - Blog 1万+

ES5, ES2015 和 TypeScript 的区别

英文原文:Understanding ES5, ES2015 and TypeScript 参与翻译 (2人) : LeoXu, 溪边九节 ES5,ES2015(原名 ES6 )和 TypeScript 之间有什么不同?我们应该学习和使用哪一个? 首先,让我们为讨论这些建立一个基础。TypeScript 是 JavaScript 的超集。ES2015 是 ES5 的改进。知道关系可以让我们更容易学...

huzhenv5的博客 777

浅谈TypeScript语法

Angular是用TypeScript构建的 TypeScript并不是一门全新的语言,而是ES6的超集。所有的ES6代码都是完全有效且可编译的TypeScript代码。 说明一下:什么是ES5?什么是ES6?ES5是ECMAScript5的缩写,也被称为“普通的JavaScript”。ES5就是大家熟知的JavaScript,它能够运行在大部分浏览器上。ES6则是下一个版本的Java

默默前行,勿喜、勿悲、一切随缘! 1万+

es5、es6、typescript中的类和对象

一.es5 //1.把属性和方法都放在构造函数中(不建议使用,每次创建实例都会创建公共的方法) function Person(name){ this.name = name; this.getName = function(){ return this.name; } this.setName = function(name){ ...

weixin_42454941的博客 575

TypeScript和es5的JavaScript的语法比较

1.变量(基础类型和定义)typescript定义变量需要指定变量的类型,后面不许更改变量的类型1>定义let 和 var 和const的区别let定义的变量只在作用域中起作用,出来作用域就会被销毁 var在指定作用域中起作用 比如:都在函数中定义for循环,let只能在for循环中使用,var可以在整个函数中使用 const 定义的变量不可以修改值,是一个常量2>基础类型//B

qq_39707142的博客 684

基于LiteLLM与Grafana构建AI应用成本监控仪表盘实战

在云原生与微服务架构中,可观测性是保障系统稳定与成本可控的核心能力。其原理在于通过日志、指标和追踪三大支柱,对分布式系统的运行状态进行实时采集、聚合与可视化分析。这一技术价值不仅体现在故障排查与性能优化上,更关键的是能实现精细化的成本治理,尤其在资源消耗弹性较大的场景中,如AI大模型API调用。随着企业广泛集成GPT-4、Claude等模型开发智能体(Agent)与自动化流程,其API调用成本因模型多样、计费方式复杂(如按Token、请求次数)而变得难以追踪与优化。为解决这一痛点,可以引入**LiteLLM

weixin_34323858的博客 466
上一篇: TypeScript函数
下一篇: TypeScript类和修饰符静态属性和方法
白马非马啊
博客等级 码龄10年 13粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值