初探JavaScript 面向对象(推荐)
发布时间 - 2026-01-11 03:05:02 点击率:次类的声明

1. 构造函数
function Animal() {
this.name = 'name'
}
// 实例化
new Animal()
2. ES6 class
class Animal {
constructor() {
this.name = 'name'
}
}
// 实例化
new Animal()
类的继承
1. 借助构造函数实现继承
原理:改变子类运行时的 this 指向,但是父类原型链上的属性并没有被继承,是不完全的继承
function Parent() {
this.name = 'Parent'
}
Parent.prototype.say = function(){
console.log('hello')
}
function Child() {
Parent.call(this)
this.type = 'Child'
}
console.log(new Parent())
console.log(new Child())
2. 借助原型链实现继承
原理:原型链,但是在一个子类实例中改变了父类中的属性,其他实例中的该属性也会改变子,也是不完全的继承
function Parent() {
this.name = 'Parent'
this.arr = [1, 2, 3]
}
Parent.prototype.say = function(){
console.log('hello')
}
function Child() {
this.type = 'Child'
}
Child.prototype = new Parent()
let s1 = new Child()
let s2 = new Child()
s1.arr.push(4)
console.log(s1.arr, s2.arr)
console.log(new Parent())
console.log(new Child())
console.log(new Child().say())
3. 构造函数 + 原型链
最佳实践
// 父类
function Parent() {
this.name = 'Parent'
this.arr = [1, 2, 3]
}
Parent.prototype.say = function(){
console.log('hello')
}
// 子类
function Child() {
Parent.call(this)
this.type = 'Child'
}
// 避免父级的构造函数执行两次,共用一个 constructor
// 但是无法区分实例属于哪个构造函数
// Child.prototype = Parent.prototype
// 改进:创建一个中间对象,再修改子类的 constructor
Child.prototype = Object.create(Parent.prototype)
Child.prototype.constructor = Child
// 实例化
let s1 = new Child()
let s2 = new Child()
let s3 = new Parent()
s1.arr.push(4)
console.log(s1.arr, s2.arr) // [1, 2, 3, 4] [1, 2, 3]
console.log(s2.constructor) // Child
console.log(s3.constructor) // Parent
console.log(new Parent())
console.log(new Child())
console.log(new Child().say())
总结
以上所述是小编给大家介绍的JavaScript 面向对象(推荐)的相关知识,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
# js
# 面向对象
# JS 面向对象之继承---多种组合继承详解
# JS实现简单面向对象的颜色选择器实例
# JS面向对象编程详解
# js面向对象的写法
# js实现对ajax请求面向对象的封装
# 子类
# 不完全
# 小编
# 也会
# 两次
# 给大家
# 在一
# 所述
# 创建一个
# 给我留言
# 相关知识
# 类中
# 有任何
# 改变了
# 共用一个
# function
# constructor
# Animal
# strong
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
制作企业网站建设方案,怎样建设一个公司网站?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
浅析上传头像示例及其注意事项
北京的网站制作公司有哪些,哪个视频网站最好?
如何快速搭建高效WAP手机网站吸引移动用户?
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
如何在阿里云高效完成企业建站全流程?
Android实现代码画虚线边框背景效果
如何快速打造个性化非模板自助建站?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
如何用免费手机建站系统零基础打造专业网站?
大同网页,大同瑞慈医院官网?
Laravel如何使用模型观察者?(Observer代码示例)
微信公众帐号开发教程之图文消息全攻略
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Angular 表单中正确绑定输入值以确保提交与验证正常工作
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
如何快速搭建虚拟主机网站?新手必看指南
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
如何在云主机上快速搭建网站?
七夕网站制作视频,七夕大促活动怎么报名?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
三星网站视频制作教程下载,三星w23网页如何全屏?
详解Android中Activity的四大启动模式实验简述
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
重庆市网站制作公司,重庆招聘网站哪个好?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
如何在搬瓦工VPS快速搭建网站?
Python自动化办公教程_ExcelWordPDF批量处理案例
bootstrap日历插件datetimepicker使用方法
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Linux系统命令中tree命令详解
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
网站制作报价单模板图片,小松挖机官方网站报价?
韩国服务器如何优化跨境访问实现高效连接?
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
如何在IIS7中新建站点?详细步骤解析
Swift中swift中的switch 语句
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
Java类加载基本过程详细介绍
上一篇:云服务器ECS如何快速搭建网站?
上一篇:云服务器ECS如何快速搭建网站?

