首页 > 其他分享 >JS中创建对象与继承的方法总结

JS中创建对象与继承的方法总结

时间:2023-03-06 13:14:52浏览次数:39  
标签:总结 继承 创建对象 JS 对象 原型 属性 super 构造函数

js中对象的定义与其它面向对象语言不同,它的对象被描述为:一组无序属性的集合,其属性可以包含基本类型值、对象或者函数

而其它面向对象语言中的对象,通常指代可以通过类创建多个的,具有相同属性和方法的对象

如果我们想在js中创建第二种对象,需要做什么?先定义它的构造函数。

1. 几种创建具有相同属性名与方法对象的方式
1)工厂模式
2)构造函数
3)原型模式
4)组合构造函数与原型
5)寄生构造函数
6)稳妥构造函数

es6: class, class是构造函数的语法糖
2. 继承的方式
1)原型链继承-让sub的原型指向super的实例
2)借用构造函数继承-调用call方法
3)混合继承-调用call方法,并且让sub的原型指向super实例,优点是可以让里面的引用类型属性比如数组,各自是各自的。
4)改良:寄生混合继承,让sub的原型指向super实例,不再调用super构造方法,而是使用Object.create()
5)手写Object.create(),就是在里面创建一个空方法F,临时让F的原型等于参数,再调用F构造函数。

es6: class + extend

标签:总结,继承,创建对象,JS,对象,原型,属性,super,构造函数
From: https://www.cnblogs.com/nanimono/p/17183455.html

相关文章

  • QDir类及其用法总结
    简介QDir类提供了访问系统目录结构及其内容的与平台无关的方式。头文件:#include<QDir>QDir类用来操作路径名及底层文件系统,获取关于目录路径及文件的相关信息,也......
  • JS 深拷贝与浅拷贝
    js我们常用赋值的方式进行复制。对常数项来说赋值后的两个变量没有关系,但是变量是对象的话,值会相互影响,这里存在深拷贝与浅拷贝的问题。对象的赋值默认是浅拷贝,A=B,两个值......
  • Node.js 未来发展趋势
    作者:京东零售郑炳懿前言当下,Node.js作为一种异步I/O和事件驱动编程的语言,在前端和后端领域都具有很高的普及度。同时,Node.js作为一个底层运行时环境,使得开发者可以......
  • JS-表单提交及前端MD5加密问题
    【目标】前端提交密码,通过MD5加密后,浏览器抓包看到的表单信息中,密码是加密后的。【问题】密码加密后输出是加密后的,但是抓包看到的表单数据是明文密码。【问题代码】1......
  • SQL Server数据库的高性能优化经验总结二
    本文主要向大家介绍的是正确优化SQLServer数据库的经验总结,其中包括在对其进行优化的实际操作中值得大家注意的地方描述,以及对SQL语句进行优化的最基本原则,以下就是文章的......
  • SQL Server数据库优化大总结一
    SQL优化大总结:1.对查询进行优化,要尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。2.应尽量避免在where子句中对字段进行null值判断,否则将导致引......
  • 浅谈js防抖和节流
    防抖和节流是处理高频触发最常见的优化方式,对性能提升有很大的帮助。防抖:将多次的高频操作优化为只在最后一次执行,应用场景如:输入框,只需在最后一次输入进行校验即可。节......
  • 3.5每日总结
     今天学习了TableLayout(表格布局)。android:collapseColumns:设置需要被隐藏的列的序号android:shrinkColumns:设置允许被收缩的列的列序号android:stretchColumns:设置......
  • odoo context上下文用法总结
    环境odoo-14.0.post20221212.tarcontext用法总结获取上下文>>>self.env.context#返回字典数据,等价于self._context{'lang':'en_US','tz':'Europe/Brussels'}>......
  • js export default problems All In One
    jsexportdefaultproblemsAllInOneproblems潜在的bug维护成本不同人代码的命名不一致solutionnamedexportdemosexportdefault......