JavaScript面向对象和类

DDR3性能优化实战:如何用Xilinx MIG控制器实现800MHz稳定读写(7系列FPGA版) 本文深入探讨了在Xilinx 7系列FPGA上使用MIG控制器实现DDR3存储器800MHz稳定高速读写的实战优化技巧。文章聚焦于高级时序调优、Bank Machine调度策略、用户接口设计优化以及利用ILA进行信号完整性调试,旨在帮助工程师突破性能瓶颈,实现接近理论峰值的稳定带宽,并为进一步冲刺更高频率提供进阶调参指南。 阅读详情

面向对象:

面向对象是一种编程思想(oop)。很多个具有相同属性和行为的对象就可以抽象为类,对象是类的一个实例。JavaScript在ECMAScript 6中引入了类的概念。

面向对象的三个基本特征:

  • 封装
    • 就是将一类事物的属性和行为抽象成一个类,使其属性私有化行为公开化,隐藏对象属性和实现细节,仅对外提供访问形式,提高安全性和代码复用性。
  • 继承
    • 则是进一步将一类事物共有的属性和行为抽象成一个父类,而每个子类拥有父类的行为和属性,也有自己特有的行为和属性,扩展了已存在的代码块,进一步提高了代码的复用性。
  • 多态
    • 是指允许不同类的对象对同一消息做出不同响应,从一定角度来 看,封装和继承几乎都是为多态而准备的,类中多个方法的重载叫多态,父子类中方法的覆盖也叫多态。提高了软件 的可重用性和可扩充性。

通过类来区分构造对象(区分对应的类型):

class Person{

            constructor(username){  //构造器 他是一个函数new的时候会调用对应的构造器

                this.name=username //this指向当前实例对象

            }

        }

        var person=new Person('jack') //实际调用的类里面的构造函数

        //类从根本来说是一个构造函数

        console.log(person);

        //以构造函数构建 首字母大写 es3

        function Dog(name){

            this.name =name //函数里面的this指向

        }

        var dog =new Dog('旺财')

        console.log(dog);

通过构造函数构建做了什么操作:      

            1.自动新建一个新的对象

            2.手动给对象的属性进行赋值

            3.自动返回这个对象

            4.以工厂模式来构建 (不能区分类型)

            5.工厂里面要传入对应的属性 返回对应的对象

            6.工厂模式构建出来的 全是object对象

function factory(name){

                //Object是最大的对象 手动构建对象

                var obj=new Object()

                //手动给obj设置相关的属性

                obj.name=name

                //手动返回对应的对象

                return obj

            }

            //调用

            var obj=factory('旺财')

            var obj1=factory('jack')

            console.log(obj,obj1);

继承与重写:

class Person {

            constructor() {

                this.name = 'jack'

                this.say = () => {

                    console.log('你好你好');

                }

            }

        }

        class Son extends Person {  //(继承,子类继承父类的属性和方法)

            constructor(age) {

                super() //调用person的constructor (指向父类)

                this.age = age

                //重写

                this.say=()=>{

                    console.log('哈哈哈');

                }

            }

        }

        var son=new Son()

        console.log(son); //name say age

        son.say()  //调用重写

注意:JavaScript没有重载

使用工厂模式来构建对象

我们可以写一个工厂函数,手动初始化一个对象,给这个对象添加属性和方法,将这个对象返回,解决代码重复的问题。

function factory(age){
    //声明一个对象
    var obj = new Object()
    obj.age = age
    return obj
}

然后生成实例对象,就等于是在调用函数:

var person1 = factroy(18)
var person2 = factroy(20)

构造函数模式

为了解决从原型对象生成实例的问题,Javascript提供了一个构造函数(Constructor)模式。

所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量。对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上。

比如,人的原型对象现在可以这样写

function Person(age, name){
    this.age = age
    this.name = name
}

我们现在就可以生成实例对象了。

//new关键词来构建
var person1 = new Person(18,'zhangsan')
var person2 = new Person(20,'lisi')
console.log(person1.name) //zhangsan
console.log(person2.name) //lisi

这时person1和person2会自动含有一个constructor属性,指向它们的构造函数。

console.log(person1.constructor == Person); //true
console.log(person2.constructor == Person); //true

Javascript还提供了一个instanceof运算符,验证原型对象与实例对象之间的关系

console.log(person1 instanceof Person); //true
console.log(person2 instanceof Person); //true

New操作符具体做了些什么?(重点)

1.在构造函数内部创建一个空对象

2.空对象的指针指向构造函数的原型

3.把空构造函数的this指向空对象

4.让空对象拥有自定义的属性和方法

5.隐式的返回return this

例子:

        

function Person(name, age) {

        //1.在构造函数内部创建一个空对象

        // var obj = new Object();

        //2.this,指向空对象

        // Person.bind(obj);

        //3.往空对象上添加属性和方法

        // this.name = name;

        // this.age = age;

        // this.run = function () {};

        // //4.空对象的指针执行构造函数的原型

        // this.__proto__ = Person.prototype;

        // //5.隐式的return this

        // return this;

        // return {}; //{} 新的对象

      }

      var p1 = new Person("刘德华", 20);

      console.log(p1);

类:

语法:

在JavaScript中类是对象的模板,对象是类的实例化.

使用关键字 class 创建一个类。并添加 constructor() 方法

 实例:

一个名为Person的类,name和Perso是它的两个属性

 对类的实例化Person

 类的应用:

 需要向类中传递参数:

 

堆内存管理核心逻辑 超详细复习笔记 本文详细解析了堆内存管理的核心逻辑,包括初始化、分配释放三个关键环节。系统通过全局堆管理结构体链表机制实现动态内存管理:初始化时标记整块内存为空闲;分配时遍历链表查找合适空闲块并进行分割;释放时定位内存块头并重新标记为空闲,支持相邻块合并以减少碎片。文章对比了链表式管理线性分配的优缺点,指出链表式更灵活但实现复杂,线性分配简单但无法释放。最后总结了常见错误(如指针回推错误、碎片问题)扩展知识(不同内存管理算法)。这套机制是理解嵌入式系统RTOS内存管理的基础。 阅读详情

相关推荐

11、气动外形优化中的连续伴随方法

本文探讨了连续伴随方法在气动外形优化中的理论背景、实现验证过程。通过使用DLR的FLOWer求解器,将伴随方法应用于EulerNavier-Stokes方程,以高效计算成本函数梯度,从而显著减少优化过程中的计算成本。文章还介绍了该方法在RAE2822翼型ONERA M6机翼等案例中的应用,并展示了其准确性效率。未来展望包括扩展到复杂流动模拟多学科优化。

desk3的博客 143

js中的对象

什么是对象 1.是具有相同的属性方法的集合。 2.对象中具体一个实例。 是一种抽象的,并不实际存在的,表示一种事物共有特征的描述。 对象是一种具体的,实际存在的,中的某一个个体。 2.2 创建对象 2.2.1 字面式对象 1、声明字面式对象 语法: var 对象={}; 给对象添加属性方法 对象.属性,对象.方法() 2.2.2 通过object创建对象 Object是所有的父。 总结说明:Object,O要大写 语法:var obj=new Objec

m0_51281306的博客 1643

3、全面掌握QGIS开发:从调试到应用的全方位指南

本文全面介绍了QGIS开发的各个环节,涵盖插件调试、PyQGIS API导航、插件创建与分发、独立地理空间应用开发,以及全局项目级首选项的管理。通过详细的步骤说明、代码示例流程图,帮助开发者系统掌握QGIS扩展与集成的核心技能,并展望了未来在功能拓展、跨平台兼容性技术融合方面的可能性。

hill8的博客 72

es6---》对象

js中,对象是一组 无序相关属性方法的集合,所有的事物都是对象 对象是有属性方法组成的: 属性:事物的特征,在对象中用属性来表示(常用名词) 方法:事物的行为,在对象中用方法来表示(常用动词) class 是抽象了对象的公共部分,它反之某一大(class) 对象是特指某一个,通过 实例化一个具体的对象 面向对象的思维特点 1.抽取(抽象)对象公用的属性行为...

itwangyang520的博客 378

JS以及相关对象

本文介绍了面向对象编程的核心思想及其在JavaScript中的实现。面向对象通过对象对现实世界进行抽象,关注"谁来做"而非"怎么做"。JavaScript由构造函数、实例成员静态成员组成,通过访问器实现计算属性。ES6具有方法不可枚举、暂时性死区等特性,本质上是ES5构造函数的语法糖。理解这些特性有助于编写更规范的代码,面向对象不仅是一种编程方式,更是对现实世界的抽象思维。

2401_86736854的博客 379

JavaScript对象

JavaScript对象、构造函数、对象的关系

不畏惧被人讨厌而是勇往直前,不随波逐流而是激流勇进,这才是对人而言的自由。 1023

JavaScript 对象

对象前言面向对象的思维特点对象class 创建添加属性constructor()方法里面添加方法的继承super()调用普通函数注意规范 super要放在this的前面使用的注意点注意点1注意点2注意点3 前言 面向对象 更贴近我们的实际生活 可以使用面向对象来描述现实世界事物 但是事物可以分为具体的事物抽象的事物 比如说 手机 华为 手机就是抽象的 泛指所有手机 华为就是具体的 特指华为品牌的手机 面向对象的思维特点 抽取(抽象的)对象共用的属性行为 封装为一个(模板) 对进行

xihuanLilia的博客 2301

javascript--JS面向对象、其他定义

JS面向对象、其他定义对象的方法 1、面向对象 三大特征:封装、继承、多态 封装:用函数把重复调用的代码封装起来 集成:子集成父的一些特性 多态:函数名相同、参数不同 2、闭包:内部的函数fun1()能够调用fun()内部的属性,进行改写 Function fun(){ Function fun1(){ } } 2、其他定义对象的方法: (1)的定义,通...

张新丁 418

javascript 绘制uml_js面向对象编程UML图的设计

引言前端一直以来由于JavaScript语言特性一些限制导致不能很好的Java等强语言一样面向对象化编程,导致es6到来以后,class的语法糖或者ts中面向对象编程的设计显得比较薄弱,接下来记录一个小例子来演示一下图设计代码实现过程场景例子平时打车为例:1、车分为快车专车,它们都有车牌号名字;2、快车每公里2元,专车每公里4元;3、添加一个为5公里路程的行程;分析每个车都有车牌...

weixin_42393576的博客 622

JavaScript面向对象教程2-对象

文章目录1.对象2.3.创建对象 1.对象 对象:它是一个具体的事物,也是一组无序的相关属性方法的集合,例如生活中的一本书、一辆车就是对象。 属性:事物的特征,常用名词表示。 方法:事物的行为,常用动词表示。 如图:汽车的外形很好看,能够在道路上行驶。 汽车是对象,外形是属性,行驶是方法。 2. :它可以使用class关键字声明一个,之后这个用来实例化对象。 例子:就像一张设计汽车的图纸,是抽象的,为了设计出真正的汽车。 如图:通过抽象的轮胎、车门、颜色等设计,来构造一辆汽车。

William_fang的博客 395

JS面向对象——原型

描述: JS面向对象——原型 实现: /* * * prototype 原型 基因 * 原型是有当中创建,是由父代传入的 * 针对对象来说,这个原型就是自身根本原始属性 * 对象的__proto__ 他与的prototype相同 * prototype就是中对于自身基因的...

进击的葱 312

java script 面向对象--javascript如何定义对象

javascript如何定义对象 1、原始方式   var oCar = new Object; oCar.color = "blue"; oCar.doors = 4; oCar.mpg = 25; oCar.showColor = function() { alert(this.color); };     2、工厂方法   function ...

zcrystalspring的博客 467

JavaScript高级之面向对象的继承

1. 面向对象编程介绍 1.1 两大编程思想 面向过程 面向对象 1.2 面向过程编程 POP(Process-oriented programming) 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤步—步实现,使用的时候再一个一个的依次调用就可以了。 举个栗子:将大象装进冰箱,面向过程做法。 面向过程,就是按照我们分析好的步骤,按照步骤解决问题。 1.3 面向对象编程 OOP(Object Oriented Programming) 面向对象是把事务分解成为一个个对象,然后由对象之间

xiecheng1995的博客 250

JavaScript 高级—面向对象面向对象、ES6 中的对象的继承)

目标: 能够说出什么是面向对象 能够说出对象的关系 能够使用class创建自定义 能够说出什么是继承 1.面向对象编程介绍 1.1两大编程思想 面向过程 面向对象 1.2 面向过程编程 面向过程编程,即POP(Process-oriented programming)。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。 1.3 面向对象编程 面向对象编程,即 OOP(Object Orie...

m0_59030524的博客 770

JavaScript面向对象之创建方法

一,js使用函数来定义而不是像别的编程语言一样通过关键字class来定义,通过本身(this)原型(prototype)来完成面对对象编程! 示例1, //创建ElectronicSignature functionElectronicSignature () {   //添加operatingSignature (操作签名)方法   this.operatingSignat...

weixin_34112208的博客 135

js面向对象ES6新增class

js面向对象ES6新增class 1.面向过程面向对象 **面向过程:**面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。 **面向对象:**面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。 面向过程 面向对象 优点 性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用的面向过程编程。...

清风的博客 377

JavaScript高级01】面向对象与面向过程、对象

day011.面向过程与面向对象1.1面向过程1.2面向对象1.3面向过程与面向对象对比2.对象2.1对象2.1.1创建对象2.22.2.1创建2.2.2创建添加属性方法2.2.3的继承在这里插入图片描述3.面向对象版tab 栏切换3.1功能需求3.2案例准备3.3切换3.4添加3.5删除3.6编辑 1.面向过程与面向对象 1.1面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。 1.2面向对象 面向对象是把事务分

耍酷的李世达的博客 508

node.js面向对象实现(一)对象

为什么80%的码农都做不了架构师?>>> ...

weixin_33785972的博客 337

20-JavaScript-面向对象-(原型对象) 对象(实例)

- JS面向(基于)对象编程      - (原型对象) 与 对象(实例)     - 构造方法 this         - 成员变量 成员方法 1. 概念  1.1 JS面向对象特征介绍     JavaScript是一种面向对象的动态脚本语言     基于对象(Object-Based)     事件驱动(EventDriven)     具有

吴钦飞 1375

JavaScript | 面向对象 + ES6 中的对象 + 的继承extends + super关键字

目录 面向对象编程介绍 面向过程编程 POP(Process-oriented programming) 面向对象编程 OOP (Object Oriented Programming) ES6 中的对象 class 创建 添加方法 的继承 继承 extends super 关键字 面向对象版 tab 栏切换 切换功能 添加功能 删除功能 编辑功能 完整JS源码!!常看 面向对象编程介绍 面向过程编程 POP(Process-oriented pro..

不爱吃菜的菜菜的博客 469

实用JS系列——面向对象中的继承

背景: 在最开始学习JavaScript时,我们就知道,它是一种脚本语言,也有面向对象机制。但它的面向对象继承机制是基于原型的,即Prototype。今天,我们就通过Prototype,来找一下JS中OO的影子。   1、用function模拟创建似构造函数 function Animal() { this.name =

技术交流 1255

IBM装备制造板块企业架构整体规划方案.pptx

IBM装备制造板块企业架构整体规划方案.pptx

实验二 FFT算法_CCS;_DSP;_

这是一个关于信号生成以及利用FFT算法实现信号从时域信号变为频域信号的快速算法,利用CCS软件完成FFT的DSP编程。

上一篇: HTML5和CSS3基础知识点
下一篇: JavaScript的原型和继承
ITjun666
博客等级 码龄4年 385粉丝 · 35原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值